When I use Google Calendar APIs calendar.events.delete and calendar.events.update, you do not have permission to execute this method.response 403 Forbidden, but I have given the permission "https://www.googleapis.com/auth /calendar", please help me, thank you.
403 error happens when you are hitting the current quota limit.
As per google support,
Google Calendar puts certain limits in place to protect our users and
infrastructure from abusive behavior. When these limits are reached by
a user, Google Calendar will go into read-only mode for that user, and
all edit actions will fail for a certain period of time. Most users
will never hit these limits, as they are well above the activity level
of a typical Calendar user.
To help you handle the errors, resolutions have been stated in the documentation.
Related
I have a LinkedIn app which can access the LinkedIn v2 API (tested with v2 endpoints), having the following privileges (scopes) according to the LinkedIn Developer Portal:
r_ad_campaigns
r_basicprofile
rw_organization.
The application is already enrolled in the Marketing Partner Program as far as my knowledge goes.
Regarding the above, I would like to have two questions/requests in which I would like to ask for your help.
I would like to modify the app permissions (scopes) to be the following:
r_liteprofile
r_emailaddress
r_member_social
w_member_social
rw_organization_admin
w_organization_social
r_organization_social
r_organization_lookup
rw_ads
r_ads_reporting
Currently there is no way to do so via the developer platform, and the LinkedIn support sent me here, so my question is: how can I get the app's privileges changed?
Interestingly enough, with the current set of privileges I was able to get an auth token for a given user for the r_emailaddress scope, but when I tried to call either https://api.linkedin.com/v2/clientAwareMemberHandles?q=members&projection=(elements*(primary,type,handle~)) or https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~)) I have received 403 Forbidden response, presumably due to the missing permission in question 1. Even if so, the token shouldn't have been issued in this case if I am not mistaken.
Could you please confirm if this is expected, or if something else is in play here?
I'm pretty certain it's that you must apply to the Marketing Partner Program.
I'm having the same issue as well, and I just applied to the program. Currently awaiting approval, but will confirm/edit answer once I get confirmation.
LinkedIn has made a lot of changed to their API over the past few months. Check out the latest permission changes relevant to this post:
https://learn.microsoft.com/en-us/linkedin/shared/references/migrations/marketing-permissions-migration
EDIT: Confirmed. I didn't receive a notification that I was approved, however, it's 30 days later after applying and I just noticed there was a new product available under "Products" once you are logged in and on your App in the developer portal. You have to add the "Marketing Developer Platform" product, and once again fill out an application:
After completing, they say they will provide you with confirmation within 90 days.
In my company we set up Google Calendar API to notify our providers when we have new missions to offer them and allow them to accept/refuse mission through the Google Calendar.
However, since last week we started getting quotaExceeded errors ("Calendar usage limits exceeded"). I checked quotas but figured out we are way below quotas (3,000 / 1,000,000 requests per day and 10 / 500 requests per 100 seconds).
HttpError: <HttpError 403 when requesting https://www.googleapis.com/calendar/v3/calendars/svbk5reui******l6h044qn3h4%40group.calendar.google.com/events/1meqllvk6******dt9poej9mk0?alt=json&sendNotifications=true returned "Calendar usage limits exceeded.">
After checking a bit further, I noticed there are also "hidden" quotas. I say "hidden" quotas beacause I can't find any feedback about the evolution of these quotas. I assumed we might have reached either "Send too many invitations to external guests" or "Email too many guests via Google Calendar events" quota. So I set sendNotifications=false where we used to set sendNotifications=true.
Since I made this change, we didn't experience the quotaExceeded error anymore. However, our providers are also not notified anymore when we offer them a new mission. So, I doubled the API calls with an e-mail sent to the providers including the link to the Google Calendar event.
Yet, now, some of them can't access the link, and the other can't answer if they will be attending the event or not.
How come setting sendNotifications=false disallows access or answering to the attendees? Can I check exactly what quotas are exceeded? And what are my solutions to notify our providers about new missions and allow them to see it in their calendar and answer it?
I have a wordpress blog. When I logged in to the dashboard, the following exception was highlighted at the top:
[Ga_Lib_Api_Request_Exception] There was an error while contacting Google API: { "error": { "code": 429, "message": "Insufficient tokens for quota group and limit 'AnalyticsDefaultGroupCLIENT_PROJECT-1d' of service 'analyticsreporting.googleapis.com', using the limit by ID '123******456'.", "status": "RESOURCE_EXHAUSTED", "details": [ { "#type": "type.googleapis.com/google.rpc.Help", "links": [ { "description": "Google developer console API key", "url": "https://console.developers.google.com/project/207216681371/apiui/credential"}]}]}}
From the exception message I could infer that it is something related to Google Analytics and its API.
However, I'm curious to know what could have caused this exception. Also, what steps can I take in order to avoid such exceptions?
Manoj gave you the technical information I am going to give you a bit of extra info and answer the following part of your question.
However, I'm curious to know what could have caused this exception. Also, what steps can I take in order to avoid such exceptions?
When we as developers want to access Google APIs we need to register our application with Google. Each API has a different quota that the developers need to keep track of.
a quota is the number of requests you can make to an API.
For example: Considering the Google analytics by default each user of an application can make a maximum of 10 requests a second this is to prevent flooding the servers. You can also make a maximum of 10000 requests to each Google analytics View per day. Most of the quotas are user based however there is one that is project based. RESOURCE_EXHAUSTED is one such quota.
By default the project based quota for google analytics is 50000 requests. If you have a large number of users all making requests you can quickly run out of quota. The quota on my application for example is 500000 my users run though about 70% of that each day. Once you hit this quota there is nothing that can be done the application is locked out until the quota is reset at midnight west cost USA time.
What can be done to avoid it. First off the author of the plugin needs to request an additional quota so that they can service their users better they should also be checking this periodically so that there users never see it. Its probably going to take them a month to get approved for additional quota. As a user you can help by only making requests that you need to make there by not using to much of the daily quota up.
As Manoj stated there is nothing you can do personally to fix this you will need to contact the author of the plugin.
A quick search concluded that the analytics plugin used by your blog may be using more hits and quota that is permissible by google analytics api
You can find error description here and quota limits here. Please get in touch with plugin developer to get this sorted.
It was caused by a WordPress plugin you are using called "Google Analytics," which is one of many plugins you can use to easily insert analytics tracking code into your page's source. You might disable it and install another plugin that does this without causing errors.
In addition, if this plugin is synchronously pulling from Google's servers on each request, it is needlessly slowing down your page load times. There is no reason why the plugin needs to do this.
My application's requests to a specific GA profile continue to be denied with a '403 dailyLimitExceeded' error, even in the early morning after the quota is reset at 12am PT.
The account holder is not aware of any other authorized access that would be making requests against that quota.
Is there a way to monitor requests for a profile to understand what is using up the quota, similar to API Console monitoring for projects? Are there things that use this quota that may not be obvious?
Any help on this is greatly appreciated.
I used gapi.class.php and have another analytics-dash.php template which I'm calling as an include on a page template in WP. This shows a chart and stats of analytics on the front end of WP to my admin and authors. This template is connected to my site's GA profile ID and all is well, it works and shows the stats. However, the first night after implementation we received the error "GDatadailyLimitExceededQuota" on the site. I have since removed the include script from my page template so the error will not show.
These are the steps I took to try and fix the problem:
I researched into the error "dailyLimitExceededQuota", which I researched and Google's API states the following:
"If quota is exceeded, Google Analytics API returns an error for additional requests:
HTTP status code 403 Forbidden and a message indicating that the specific account has insufficient quota to proceed...
50,000 requests per project per day
10 queries per second (QPS) per IP.
To get full quota, you must register your application in the Google Developers Console. When you register a new application, you are given a unique client ID to identify each application under that project."
Then I realized I needed to register with Google's Developer Console as the quota limit is very low for testing without registering.
I registered the application and turned on the Analytics API in the console. I'm not sure what else I am to do after registering the application.
I followed the instructions to increase the quota (Configuration and Reporting API Limits and Quotas)
by using this form:
Analytics API quota request
I went through the steps on the form to make sure I am setting this up correctly. On that form, it states the following:
"Quotas that CAN be increased:
Per project daily limit of 50,000 requests/day.
Per project daily limit of 500 uploads/day.
Quotas that CANNOT be increased:
Per profile (user) limit of 10,000 requests/day [403 Error with Message about Profile limit: dailyLimitExceeded]
Per profile (user) limit of 10 concurrent requests per profile [403 Error: quotaExceeded]
Per IP limits of 10 queries/second (QPS) [403 Error: userRateLimitExceeded]"
... proceed to check that we "Verify that the quota you are asking for can be increased. See the list above."
This is referring to the quotas that can and cannot be increased (above). Since we received error "dailyLimitExceed", and this is associated with "per profile (user) limit of 10,000 requests/day" - this is under the list that CANNOT be increased. However this was before registering the application with Google's Developer Console so I'm thinking now, since I registered it as an application/project, it can be considered to have a daily limit of 50,000 requests/day. Then if I enable it again on our website, I'm thinking the error would not show, however this I am unsure because I'm not sure if I setup the registration fully. Could it be that simple to register an application?
The next step on the form states:
"(4) Verify your API requests are properly registered with a Developers Console Project. Check the Reports Developers Console. If total requests in the traffic report is 0 then your API requests are not registered to your project ID and you are not currently getting your full quota."
However, it is going to show 0 currently because I removed the include script from our website! So I'm thinking the only way to test against this (#4 on form) is to put the script back in. Then if the error shows, that could mean that either it is not communicating with the registered application I just created, or it simply exceeds the limit. Therefore I would need to fill out this form, which I did, to ask for a quote increase. However, I'm hesitant to put the script back in to display the analytics chart until I hear back from Google (not sure how long it takes for them to respond to the increase quota request) because I don't want another dailyLimitExceeded error to be thrown and show on the front end.
Any thoughts? Thank you very much for your consideration in helping.