YouTube Data API returns "Access Not Configured" error, although it is enabled - youtube-data-api

My internally used web solution to retrieve YouTube video statistics that is based on this example (https://developers.google.com/youtube/v3/quickstart/js) now fails to work. Not sure when exactly it happened, but it used to work couple of months ago.
I now tried to run unedited example code (apart from adjusting the CLIENT_ID, of course), and I am getting exactly the same error:
{
"domain": "usageLimits",
"reason": "accessNotConfigured",
"message": "Access Not Configured. YouTube Data API has not been used in project 123 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project=123 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
"extendedHelp": "https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project=123" } ], "code": 403, "message": "Access Not Configured. YouTube Data API has not been used in project 123 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project=123 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry."
}
When I check the YouTube API in developer console, it shows enabled status, and the Credentials compatible with this API include the ID used to authenticate the client. I can see the statistics for credential use increment when I retry the API call attempts, and the metrics reflect the number of requests and also show that the error rate is 100%. But there is no extra info on those failed attempts in the console to help on debugging the problem.
I have deleted and recreated API key and OAuth key, but that did not change anything.
Had there been any extra info on those errors on the developer console side, for example client quote exceeded, I could see how to fix this. Now I am completely stuck.

Create a new project
Weirdly, creating a new project just gets the API to work properly!

The error message is unfortunately a red herring: your project's access to YouTube Data API Services is automatically disabled after a 90 day inactivity period.
You should have received a notice via email regarding this action, which also contains the steps that need to be taken to regain access: please fill out and submit the exceptions form.

Try to start a new Project with new oAuthCliedID & oAuthClientSecret

What seems to have done it for me after a lot of fiddling was to:
Go to the OAuth consent screen of the project.
Enter an Application name.
Press Save.
Lo and behold, after 5 minutes it started working.

Related

Custom google home action should always reconnect to get it working

i have a custom google home action implemented as described in the documentation (Oauth2 setup, sync, execute, etc... setup) and all works as expected on my Google home app and my google home physical devices.
Now, every now and then i need to reconnect the app in the Google Home App because it seems the app cannot reach my devices after some time. I checked my Oauth server if the refresh tokens are working ok and they do. Also my access token expires after 20 minutes and me reconnecting to the app should be done after some hours so the refreshing works in my opinion.
Now, are there any restrictions in using the TEST of the google home action?
The case i wrote is specific for personal use (intergration with personal server and domotica system) so i am actually not planning on releasing it, I just want to use it for myself. Is this allowed? Can i just leave my action in 'test' forever for such purposes?
EDIT: 18/05/2022: custom actions still working flawlessly after 6 months in test :-)
EDIT: 02/02/2023: custom actions still working flawlessly in test :-)
Additional question:
If i have to submit the app for release, i cannot meet the expectation in implementing state report as i have no control over the usage of buttons pressed at my home domotica. Is State Reporting also accepted when i report the state of my devices over time (let's say, every hour?)
tnx
EDIT:
So it seems there is something wrong with my refreshing of the tokens but i don't know what. When i try through postman, all works as expected, in stackdriver logs i see this :
jsonPayload: {
#type: "type.googleapis.com/google.identity.accountlinking.type.AccountLinkingError"
errorReason: "Failed to get response from 3P. 3P returned malformed response like invalid response code or un-inflatble body."
request: {
body: "grant_type=refresh_token&refresh_token=REDACTED_VALUE&client_id=qbusauth&client_secret=REDACTED_VALUE"
method: "POST"
uri: "https://******.azurewebsites.net/token"
}
sessionId: -1039956344
step: "REFRESH_ACCESS_TOKEN"
If you don't plan to submit your Action for release, you'll just need to occasionally re-enable device testing through the console.
To minimize the number of query intents to your fulfillment, you should implement Report State and proactively send device states to update HomeGraph. You would have to implement this if you decide to release your Action.

CodeMagic Error, can't publish to google store

It's my first time linking with codemagic, and I'm trying to link my GitHub to the store, then I have received this error,
Publishing failed :| Google Play failed to upload artefacts. The caller does not have permission: { "error": { "code": 403, "message": "The caller does not have permission", "status": "PERMISSION_DENIED" } }
I think the permission for the service account to access your application is not properly set up.
I would pay very close attention starting from the 8th point in this tutorial:
https://docs.codemagic.io/knowledge-base/google-play-api/
However, I also think that sometimes Google takes some time to get it going, in any case, I would retry creating the service account and paying very close attention to all the details - make sure the service account has access to the right application (also check your bundle id in your local settings etc).
Based on the CodeMagic documentation:
https://docs.codemagic.io/flutter-publishing/publishing-to-google-play/
It seems that the first time required to upload the AAB manually to the Google Play Store.
The very first version of the app must be added to Google Play
manually. You can download the app_release.aab from the build
artifacts. In addition, each uploaded binary must have a different
version; see how to automatically increment build version on
Codemagic.
In my case I've forgotten to invite service account as user in Google Play Console.

YouTube quotas exceeded

I'm developer and I want to upload a video using the YouTube Data API v3, but it always return the error code "quotas exceeded". I never succeeded upload a video so it's strange...
Do you have a solution for this problem or support address mail to contact in order to solve the problem ?
I send to the API that video with attachment:
curl --request POST \
--url 'https://www.googleapis.com/upload/youtube/v3/videos?part=snippet%2Cstatus' \
--header 'authorization: Bearer MyAccessToken' \
--header 'cache-control: no-cache' \
--header 'content-type: application/octet-stream'
Here is the error:
{
"error": {
"errors": [{
"domain": "youtube.quota",
"reason": "quotaExceeded",
"message": "The request cannot be completed because you have exceeded your quota."
}],
"code": 403,
"message": "The request cannot be completed because you have exceeded your quota."
}
}
I had the same issue and found out that the "Queries per day" limit was set to 0. I created a new project, with a new key. The new project got a quota of 10k per day. Problem solved.
All Google APIs have quotas. This is the number of requests that you can make over a given amount of time. Some of the quotas are based per day others can be per second or per hour.
{
"error": {
"errors": [
{
"domain": "youtube.quota",
"reason": "quotaExceeded",
"message": "The request cannot be completed because you have exceeded your quota."
}
],
"code": 403,
"message": "The request cannot be completed because you have exceeded your quota."
}
}
Its a little hard to tell which quota this is you are hitting i am gong to have to guess its one of the daily quotas. Once you hit this quota you will not be able to make any more requests until midnight West Coast USA time this is when your quota will reset.
If you go to the Google developer console and check the quota tab under the YouTube API some of these quotas can be increased by clicking the little pencil icon and seeing the number up. Contacting google will not help you in this case we all have the same quota for the API contacting them and asking for more wont help they are just going to tell you to increase it yourself.
It would also be a good idea for you to go though what requests you are making so that you are only requesting the data you really need rather then making a large number of requests for data you may not really need.
Note: I believe the upper limit for uploading videos per day is between twenty five and fifty. There is no way to increase this number it is a hard set quota.
In early Oct 2020, I get this error too. FYI, my quota, on a fresh project and new fresh client after one attempt to upload one video (unsuccessful) shows 9,600 queries and there is a 10,000 query limit per day. Something seems broken. On https://console.developers.google.com on the OAuth consent screen, I do note that Scopes for Google APIs does not include YouTube video upload. If you have installed YouTube Data API v3, you can see that "../auth/youtube.upload" is one of the scopes available to add, but it is "Sensitive" and requires that your app be reviewed. Like, what app, Google? I'm just personally writing a script on my laptop to upload my videos to my own channel to save time. That should be an exception, but I get "Because you've added a sensitive scope, your consent screen requires verification by Google before it's published." Okay, sooo... "To protect you and your users, Google only allows applications that authenticate using OAuth to use Authorized Domains." In other words, not possible unless I write my script to run on a server?
Sharing some things we found out the hard way:
Quota:
The Quota number you see in google console equals "quota units", not "number of requests". For context, one insert request costs 1600 units.
When we first enabled the Youtube Data API on Google console, it gave us up a quota limit of 10000 but the "current quota" was set to 9600, so no video upload was possible. Just wait 24 hours.
Make sure to get authentication right first since the API counts "unauthorized" requests in the quota. That means 6 failed upload requests = 9600 quota = retry in 24h. Use something lighter like a list(my channel) request.
Auth:
Do not create a separate channel. Create a channel on your registered Gmail. You should be able to see your channel when shooting a list(my channel) request. The quota message still applies (and counts units) here, even if you are trying to upload to a channel that does not exist.
Service keys (used for machine-to-machine auth) don't work. Quota on those bound-to-fail requests still applies. You need to use OAUTH2. This standalone-scripts guide worked for us. Parts of the sample code provided will automatically handle fetching/refreshing the tokens for you.
Hello for resolve the problem you must use accessToken an apiClient and not that of the console oAuth Google. Api Client Youtube
When I use accessToken of this console not working... :) Google oAuth Console
I had the same problem BUT in Logger of Google Ads (from scripts section of Google Ads account).
I know that limit is about 10k quota units.
New day has come but limit hasn't updated.
I deleted script from Google Ads, then created again and signed in Youtube account - and script started working.
Maybe this will help someone

error : { "code": "MailboxNotEnabledForRESTAPI", "message": "REST API is not yet supported for this mailbox." }

I am new with the "outlook" api. i want to get all calender event,contact and mail from "outlook account".
but i does not get appropriate result with "outlook" account its working fine with "office365" account
i follow this documentation for get all required data
and i create application for getting data from here
but every time when i login with my outlook account it's give me an error like this.
Please help me out.
Thanks in advance...
Just ran into the same problem and found an explanation here. It appears we're going to have to wait for the accounts to be enabled unless you request a testing account as described in the link. Confirmed the same results when using the non-enabled account in the Outlook Oauth Sandbox.
From the first link
Because enabling mailboxes on Outlook.com for the Outlook REST API happens over a period of time, your existing Outlook.com account may take a while to get enabled. To test your app accessing data on Outlook.com mailboxes that have already been enabled, you can request a new, enabled Outlook.com developer preview account by emailing outlookdev#microsoft.com.
If your app accesses Outlook.com mailbox data, it should handle scenarios where the user's mailbox has not yet been enabled for the Outlook REST API. In such situations, when you make a REST request, you would get an error like the following:
HTTP error: 404
Error code: MailboxNotEnabledForRESTAPI or MailboxNotSupportedForRESTAPI
Error message: “REST API is not yet supported for this mailbox.
Step 1 :
Click the Below Link :
https://oauthplay.azurewebsites.net/?code=M657b8bab-e543-f849-134c-0a2f85179a67&state=17661047-2a14-4c90-9edd-0119f841b559
Step 2:
Step 3 :
Step 4 :
Step 5 :

Google Translate API always returning 'Daily Limit Exceeded'

I'm trying to get the google translate API up and running. On the getting started guide, it gives the following example: https://www.googleapis.com/language/translate/v2/detect?key={MyAppId}&q=google+translate+is+fast
I just want to get this working for now, so I'm just trying to get it working view via a browser post, so I created a testing web application (screenshot):
and grabbed the API key, replaced the sample URL's key with my API key. I get the following response:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "dailyLimitExceeded",
"message": "Daily Limit Exceeded"
}
],
"code": 403,
"message": "Daily Limit Exceeded"
}
}
I should also note, that I have signed my account up with the billing option (I plan on using the service quite a bit), so I should have no issues at the moment.
I'm obviously doing something wrong, but I don't know what. Any suggestions?
For getting data translated you have to enable billing and have to register your credit/debit card.After you register your card 1$ will be deducted and then you will be able to use your URL
I did it recently and it worked fine.
I am also working on translating project nowadays.
Let me know if you need any kind of help on this topic
Ishan
I would first confirm that the Translate API is enabled under the "APIs" link in the Cloud Console - if it is not enabled, that effectively sets the quota to zero and may produce a similar message.
If the API is enabled, then the following link describes how to check the usage limits for your project:
https://developers.google.com/translate/v2/pricing
You can change the quotas manually:
to complement #Ishan Arora, after you add the credit card info, go to the console, enter into the project, a message will popup asking to setup the billing account for your project, if you want to get ride of the error, just select "set project into the billing account" drop down list.
On my case, the same problem was caused by credit card expiration

Resources