Soundcloud API not recognizing "Soundcloud Go" subscription - api

I just upgraded my account to the "Soundcloud Go" subscription and the API does not acknowledge the subscription:
Sample data from /Me endpoint
plan:"Free"
...
subscriptions:Array[0]
I gave it some time to refresh, I disconnected my account and re-connected it with a new access token with no different end result.
I was attempting to see if upgrading the account would allow greater access via the API as large portions of previously available data is now missing (for example I am only getting 42 of my "liked / favorited" items returned out of 62)

Related

YouTube Reporting API: Create/Download reports using channel oauth token

We have a channel oauth token from a channel owner and we are able to use the YouTube Analytics API to get details, including revenue, on the channel/videos.
I would like to use the YouTube Reporting API to create a report that we need daily and not use the more resource limited Analytics API but I am not able to see the larger list (43) of report types that include system managed reports with revenue, such as content_owner_ad_revenue_raw_a1 and content_owner_estimated_revenue_a1 with any value for the onBehalfOfContentOwner argument in a service.reportTypes().list API call.
I can see a list of 43 available reports when using a CMS oauth token, passing the partner_id value as the onBehalfOfContentOwner.
I can not find a working value when using a channel oauth token, any value I tried (oid for the video for example) results in an error response.
When I use None as the value for onBehalfOfContentOwner I see a different list (for both cms and channel oauth) of 18 reports that do not include any revenue data.
What value should I use with a channel oauth to get the revenue information from Reporting API, similar data that I am able to get from Analytics API using the same token?
Snippet from the list of 43 report types that I see when using cms partner_id on a CMS level is attached.
The list of 18 report types that I get when I pass None to onBehalfOfContentOwner is also attached (the same list for cms and channel oauth).
I tried the following:
service.reportTypes().list(
onBehalfOfContentOwner=oid,
includeSystemManaged=True
).execute()
returns error, any other value I could think of instead of oid returns error
with
service.reportTypes().list(
onBehalfOfContentOwner=None,
includeSystemManaged=True
).execute()
I get a list of 18 report types that doesn't include revenue information, also there is no systemManaged column.

Yodlee get_accounts sometimes returns zero result / empty response

Here is the scenario:
User logins to the bank successfully (via Fastlink)
Right after user logs in, I get user's provider_accounts (via /providerAccounts API)
Then when I call to get the accounts, (via /accounts) I sometimes get empty response (zero accounts found?)
When I try later (seconds or minutes after) I get some accounts information back.
Is this because Yodlee is still trying to gather account information when I'm making /accounts api call?
This is because the accounts are still being added/linked.
Using the requestId and providerAccountId provided by FastLink callback, you need to poll continuously to know the refresh status of the account linking process and once it's done, you can call the get accounts.
Read more about the refresh status in the "Add/Update Account Process Status" section.
Yodlee makes things easier now with webhooks. Read more here:
Using Webhooks with the Yodlee Core API
TL/DR: You need to wait for the add/link completion before retrieving the accounts.

Yodlee Scheduled refresh vs instant refresh

Does the GetTransactions API in new Yodlee API support instant refresh. The scheduled refresh seems to work fine but I am not able to conclude that instant refresh is not supported. All this assumes that the user is logged in and initiating a refresh scenario.
QuickBooks aggregation handled it automatically although they have a batch refresh algorithm similar to Yodlee.
Scheduled refresh- Will be carried once in a day.
We do support Instant refresh- Please pass the providerAccountId to Update Account API (https://developer.yodlee.com/apidocs/index.php#!/providerAccounts/updateAccount) to trigger instant refresh for that Provider Account.
Hope this helps.
 
APIs- Description
1 Cobrand Login- Obtain the cobrand session.
2 User Login/Register User- Obtain the user session.
3 Get Providers- Search for Provider using the search string . For Ex: WellsFargo
4 Get Provider Details- Obtain the login form by passing the obtained providerId to this API
5 Add Account- Enter the user credentials in the login form and pass it to this API.
6 Get Provider Account Details- Pass the providerAccountId obtained from the "Add Account" API to "Get Provider Account Details" API, to get add account/refresh status and for any MFA form which is required by the bank.
7 Update Account- Pass the MFA form (with valid value(s)) to "Update Account" under CredentialParams along with  providerAccountId. (Can also be used to trigger instant user refresh)
8 Get Provider Account Details- Poll this API to get (add account)refresh status, consider different statuses present here.
9 Get Accounts- After successful account addition. Pass the providerAccountId to this API to get the account ids of that account and account level details.
10 Get Account Details- Pass the accountId to this API to get the account level details For Ex: Balance amount, Currency etc.
11 Get Transactions- Use this API , to get the transaction level details (Pass the accountIds obtained and use the date filter) . Ensure to use the fromDate and toDate filter  else you will be receiving the last 30 days of transactions only.

Get historical data using Instagram API endpoints.

I am trying to fetch data using the Instagram API endpoints. Steps that I have followed
1. Register the client app.
2. Got the access token.
3. I am using this access token through out the url endpoints.
Ex. to get the data for recent media I am using this url endpoint: https://api.instagram.com/v1/users/self/media/recent/?access_token=ACCESS-TOKEN
However as I am in Sandbox mode, as per the documentation I get only the recent 20 media. Whereas my account contains in total 291 media.
Problems that I am facing:
Not able to get next_url in the paginationpart.
Usage of min_id and max_id in the url does not respond to any changes in the output or the data i.e fetched (Still get only 20 records/media)
Ex: https://api.instagram.com/v1/users/self/media/recent?access_token=XXXXXX&min_id=xxxxxx_xxxxx&max_id=xxxxxxx_xxxxxxx
Can anybody provide a solution as to how exactly I should get all of my historical data ?
You're in the sandbox mode so there's no way to achieve what you're trying to do before your app has been reviewed and approved (and gone live). From Instagram API documentation:
After your app has been reviewed and approved, you are ready to make it available to the general public. To switch your client from sandbox to live mode, you can use the button on the top section of the configuration screen for your app. When you are live, any Instagram user will be able to authorize your app, but you will have access only to the permissions that you were granted during the review.
Well, maybe you should try this library that allows you to scrape public info withou auth (client_id or access_token): https://github.com/raiym/instagram-php-scraper
$medias = Instagram::getMedias('kevin', 150);

AccessTokenRefreshError : Gdata Spreadsheet API with Service Account

First some background, Using Service Accounts with GData Spreadsheet API for an app installed via Google Apps Marketplace.
credentials = SignedJwtAssertionCredentials(
SERVICE_ACCOUNT_EMAIL,
PRIVATE_KEY,
scope = SCOPE,
sub = "admin#domain.com")
auth2token = gauth.OAuth2TokenFromCredentials(credentials)
client = SpreadsheetsClient()
auth2token.authorize(client)
q = SpreadsheetQuery(title= "ItemMaster",title_exact=True,)
feed = client.get_spreadsheets(query = q)
The problem is that the API calls fail randomly with,
AccessTokenRefreshError: Invalid response 403.
Failed to retrieve access token: You are not authorized to perform this request.
I tried doing a test in which 10 API calls are made one after another with 1 second intervals between them, atleast 4 API calls failed with the above error.
I tried checked the quota on API console and that is not being exceeded, Per user limits on the API are at 100 requests/user/second for the Drive API, and billing is enabled.
PS: This question is different from Getting AccessTokenRefreshError: invalid_grant in Google API fro service account and Google API Python Client - AccessTokenRefreshError which are related to invalid_grant while my issue is specifically related to Random Failures of API calls
EDIT: The problem seems to be related to #210 in google-api-python-client