Google Drive API Download Error 403 Daily Limit -- Ruby - ruby-on-rails

I'm having this daily limit problem with my ruby code when I try to issue a download request. This is a test program so I am running it in my terminal. I just call the ruby file.
I've followed this guide to quickly get into the Google Drive API.My code is pretty similar to that guide other than my scopes which are:
SCOPE = ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.appfolder", "https://www.googleapis.com/auth/drive.metadata"]
The credentials I am using is oAuth Service Key with "other" selected.
This is the line of code making the call.
content = HTTP.get('https://www.googleapis.com/drive/v3/files/' + file_id + "?alt=media").body
This is the error I am getting from the HTTP call.
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "dailyLimitExceededUnreg",
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
"extendedHelp": "https://code.google.com/apis/console"
}
],
"code": 403,
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
}
}
I've followed this link and created all the necessary credentials to get it working, but still have had no success. Google Drive API is also enabled in my project.
How can you fix this error even after you've set up the Google API project and its credentials?
Edit: Wanted to note that I have search and upload working with the same code. Download is the only one that is giving me errors.

All the suggestions given here are not up to the mark . This is a routine error that Drive API throws and can be easily handled .As soon as you get the error , you can again request the Drive API to consider your request by using a strategy called exponential back-off . This ensures that you make a call to Drive API again , after a specified amount of time . There is a documentation about this issue by Google and is a common issue when you send too many requests at a time .Check this link right here, it is the answer to all your problems that you are facing https://developers.google.com/drive/v3/web/handle-errors#errors_and_suggested_actions . And also request an additional Quota from Google Developers Console . Additional quota can be requested under the Quotas tab in Google Developers Console. You might be lacking enough quota to make the request . The details for same are given in the link i posted above. You should create an account and request Quota as being an unauthenticated user your requests won't last long.Use Google OAuth to authenticate yourself into the Drive API.

Related

Ambiguous ErrorQuotaExceeded message when using Microsoft Graph REST APIs

My current team has developed an application that interfaces with Microsoft Graph APIs in order to interact with Outlook emails from our enterprise portal.
Ultimately the REST API's has returned an unexpected amount of errors to multiple users, mentioning "ErrorQuotaExceeded" as the error code.
That's an extremely ambiguous message since none of the involved users has space quota issues. Also, this error only appears when calling some specific REST endpoints.
For instance, the following request always works, returning a payload with HTTP 200 response status, as expected:
GET https://graph.microsoft.com/v1.0/me/mailFolders/Inbox/messages
However, if we try to synchronize the user emails adding /delta to the aforementioned GET request (as mentioned by the official docs), we get the following error, with HTTP 403 status code:
GET https://graph.microsoft.com/v1.0/me/mailFolders/Inbox/messages/delta
{
"error": {
"code": "ErrorQuotaExceeded",
"message": "Mailbox has exceeded maximum mailbox size.",
"innerError": {
"request-id": "13c686c6-5d4d-4a9b-8594-3b34482d6805",
"date": "2018-11-13T08:09:12"
}
}
}
It should be noted that I have 3.27GB occupied out of 50GB, so it wouldn't make any sense to me that the ErrorQuotaExceeded error gets triggered.
The official Microsoft Graph Support page explicitly recommends asking this kind of questions to StackOverflow, since they don't seem to offer an official support to their API. Thanks in advance for your help.

YouTube Data API v3 quota for query per day set to 0

We are using YouTube Data API v3 for quite some time now but suddenly it started responding with error 403 saying that the access needs to be enabled.
Here is the error message:
{
"code": 403,
"errors": [
{
"domain": "usageLimits",
"message": "Access Not Configured. YouTube Data API has not been used in project {projectId} before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project={projectId} then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
"reason": "accessNotConfigured",
"extendedHelp": "https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project={projectId}"
}
],
"message": "Access Not Configured. YouTube Data API has not been used in project {projectId} before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project={projectId} then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry."
}
We have disable and re-enable all api wee use (youtube-data-api-v3, contacts api, google+ api). We have also try to generate new client-id and client secret without success.
Finally we have noticed that quota for request per day have been set to 0.
This is certainly the raison of why request we can not make any request to API, but we can not change this value.
Anyone have faced this issue before ?
What can i do to raise the limit of the quota ?
See this issue #211012781
Hi. If you're seeing Queries per day quota set to 0 and the API is indeed enabled, then this means that your project’s access to YouTube Data API Service has been disabled.
You should’ve received a notice via email regarding this action, which also contains the steps that need to be taken to regain the project’s access. But just in case you missed it, please fill out and submit the exceptions form below:
https://support.google.com/youtube/contact/yt_api_form?hl=en
It is stated somewhere that you should link to a billing account and then you can raise the limit from zero to anything.

Why youtube-v3-api stopped working?

We are using youtube-v3-api for quite some time now but suddenly it started responding with error 403 saying that the access needs to be enabled.
Here is the error message:
{
"code": 403,
"errors": [
{
"domain": "usageLimits",
"message": "Access Not Configured. YouTube Data API has not been used in project {projectId} before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project={projectId} then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
"reason": "accessNotConfigured",
"extendedHelp": "https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project={projectId}"
}
],
"message": "Access Not Configured. YouTube Data API has not been used in project {projectId} before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project={projectId} then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry."
}
But the api is enabled and it worked for months:
We use the api with oauth2 tokens and with API keys as well but we receive the same error for both.
What can be the problem?
I tried to disable and reenable the API but that didn't help.
Update:
Google support suggested that the issue maybe caused by the daily quota limit which is set to 0.
However we cannot edit this quota as shown in the picture although we have all admin rights to do so.
Does anyone experienced this? How could we raise the quota?
We already filled out a quota limit extension form and waiting for the response but I think we should be able to set to quota to a workable level on the developer console.

Getting usage limit error from server

On Friday (6/24/2016) our youtube app crashed giving us the following error.
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "dailyLimitExceededUnreg",
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
"extendedHelp": "https://code.google.com/apis/console"
}
],
"code": 403,
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
}
}
The code that was run was a simple API request to check the state of a video. It has also been running without any problems for over a year.
curl https://www.googleapis.com/youtube/v3/videos?part=contentDetails,status,snippet&key=XXX&id=XXX&maxResults=50
A few thoughts:
This message makes no sense since we are passing our key as a parameter which does authenticate us. I understand this can mean I need to use OAuth but this would be a change since this has been running without errors for over a year.
When I checked our API console I found that the youtube api was marked as disabled (this changed as we enabled it to get a key last year) and I do not see any usage limit errors when I check usage in the console.
I have also found making the request to the API from a browser on my desktop works but using curl on our server gives the usage error. This indicates there is some issue with our server.
Can someone help me understand what's going on? Are there IP blocks for the API? Did Google make a change recently that would have reset my console and caused an error suddenly in our code?
Any thoughts would be greatly appreciated.
"Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
I've come across this error before. It's not that complicated. 2 things I can suggest:
You're access token has expired. You need to generate a new one. Read Implementing OAuth 2.0 Authorization.
Register a new API key in you're GDC.
Also, try oAuth Playground for testing.

Cannot get samples to work with youtube-api; authorization problems

I'm trying to run sample: https://github.com/youtube/api-samples/blob/master/python/search.py and am getting errors. That is, I'm unsure what to replace DEVELOPER_KEY with.
Since I'm guess I'm not using OAuth, I should have Public API, but am unsure how to proceed, since all I want to do is run from terminal this script and get some output.
I've tried creating Server Public API access with ip set to 0.0.0.0/32; but when trying to run this sample with API key I get the following error:
An HTTP error 403 occurred:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "accessNotConfigured",
"message": "Access Not Configured. Please use Google Developers Console to activate the API for your project."
}
],
"code": 403,
"message": "Access Not Configured. Please use Google Developers Console to activate the API for your project."
}
}
Ideally, my goal is to run a search query, get top few videos and print their view count.
EDIT:
I've opted out for using server API access with any key accepted. I fiddled with 0.0.0.0/32 because I misunderstood if I left the field blank any IP would be accepted. Now it works.
First you need to register your application.
STEP 1.
Creat a project. It's a large button you cannot miss him !
STEP 2.
Go in your project in the section APIs
Search on YouTube API use the version 3. You need to go down the page an enable YouTube Data API v3
Basically YouTube Data API v3 is now to ON
STEP 3.
Go in the section Credentials and click :
Creat a new key
After that, you will have several options :
Two kinds of API keys are available in the Google Developers Console:
Use a server key if your application is running on a server. Never
share this kind of API key outside your server code. For example,
never embed this key in a web page. To prevent quota theft, restrict
your key so that requests are only allowed from your servers' source
IP addresses. Use a browser key if your application is running on a
client, for example from JavaScript or any other client-side
web-browser context. To prevent your browser key from being used on
unauthorized sites, only allow referrals from domains that you
administer.
So after you have your API Key (wich is public)
Then use it in your code !

Resources