I am developing an application which fetchs data from Google Spreadsheet using query.
The data comes in JSON format. I want to know whether there is any restrictions on number of request that can be sent to Google server for fetching the JSON from the spreadsheets.
I mean is there any restrictions like per hour or per day N requests.
Never seen a limit and suspect there is no such limit, but might be wrong.
Any ideas of rough volumes? I have has about 10 people at once use the service, it did slowdown a little, but was ok.
If it helps, the gdata style spreadsheet API takes about 1 Second/read and 2-10seconds/write (large sheets are slower)
Related
I'm using a json script from another stack overflow post and don't know with what frequency I'm calling the external data (from Seatgeek).
I don't want to get cut off from the Seatgeek api so I want to make sure I'm not going to bog down the system - I really only need the data to refresh twice a day.
I would not consider myself a developer so I'm not sure where to look. Can someone please help by taking a look at the script?
According to the Google Sheets API documentation:
Google Sheets API has a limit of 500 requests per 100 seconds per project, and 100 requests per 100 seconds per user. Limits for reads and writes are tracked separately. There is no daily usage limit.
Also, if you want to find the usage and more statistics regarding the API, you can check the Google API console and find all the information there.
For more information regarding your issue, you could check the following documentation:
[1] Google Sheets API;
[2] Google Console API Quota
I've set up two sets of address. One across the second row starting at B2 and another down the first column starting at A3. Using a custom function invoking google's api I am trying to get a list of drive times in minutes for all locations in the first column to all locations in the second row. I get an error stating that it has ran to many times in one day. Here is the custom function
function DriveTime(origin, destination) {
var directions = Maps.newDirectionFinder()
.setOrigin(origin)
.setDestination(destination)
.getDirections();
return directions.routes[0].legs[0].duration.value/60;
}
Error: Service invoked too many times in one day: route (line 2)
I understand the error, but how many times in one day can I make this call as a standard free user. And where can I find pricing to increase the amount of daily calls to this service?
Also if anyone knows of a way to accomplish this in less calls than I am attempting, that'd be welcomed knowledge as well.
Technically, your quota as a apps script user without API key/Billing information should be zero. But for whatever reason, Google didn't make changes to charge apps script Maps library when they changed the pricing back in June'18 for everything else related to Maps API. There seems to be a default quota, which is not explicitly mentioned in apps script documentation pages.
If you have had premium plan in the past, you can leverage Maps.setAuthentication(). But if you do not,
This method doesn't work with API keys. Additionally, please note that Premium Plan is no longer available for new customers. If you don't already have a Premium Plan license, please don't call setAuthentication(clientId, signingKey). You are able to use the Maps methods with the default quota allowances.
Which means you cannot extend the default quota allowance.
Your alternative would then be to call the maps api directlyskip oauth using urlfetchapp and parse the response using apps script vanilla javascript(es5).
You can see the pricing here.
I'm using the google maps distance matrix javascript API to query the travel time from one point to about 50 destinations.
in order to do this, I need to break my query up into multiple chunks, since the google maps API allows only a maximum of 25 destinations per request.
the problem that I'm having is the synchronization of the request and the result.
other APIs offer the option to include a key that lets the developer match a request and an asynchronous result.
however, since such a parameter is missing from the request specification, I have no idea how to make sure that I'm matching the right data to my incoming results.
I would be glad for a "clean" workaround - currently the only idea that I'm having is to have a unique number of destinations for each request, for instance the first with 25, the next with 24 destinations and so on. but I would not consider this a satisfactory approach.
thank you
For the last 6 months I've been entering my weight into Google Fit, I now want to get my data out.
Accessing the Google Fit REST API hasn't been an issue. Finding my weight data amongst the all the accessible data has stumped me however.
Any pointers gratefully appreciated.
I can get all weight data
I found API request for all weight data
https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.weight:com.google.android.gms:merge_weight/datasets/0-1443194884000000000
Last set is Start time and end time (in nanoseconds). Let me know if you have issue for weight Data. May be this query will help you.
What is an efficient way to find recently updated Google contacts?
The obvious solution to retrieve all contacts with ContactsApp.getContacts() and iterate through all of them with getLastUpdated() doesn't seem particularly efficient and I am worried that such a code will exceed the time allowed if there are several thousand contacts.
Thanks.
You cant with ContactsApp. You can use urlFetch and use the raw contacts v3 api. Use a query using updated-min, remember what your last updated-min was so you only get ghe ones updated since your last call. See the api and this: https://developers.google.com/google-apps/contacts/v3/reference#Parameters