Google Drive API quota exceeded -


i'm creating channel receive changes on users on application. main problem after 2-3 webhooks, receive error says user has exceeded quota limits.

that has no sense, because received 2 post message (i saw on ngrok).

i've went on google console on drive api , quota. each time receive webhook amount of queries increased 500. so, when user make 2 changes , receive 2 webhooks, number of queries exceed 1000 allowed google , receive error.

that's code enable channel:

    @get     @path("/enable")     public void enable(@context httpservletrequest request, @context httpservletresponse response) throws ioexception {         credential credential = initflow().loadcredential("user");         drive service = new drive.builder(http_transport, json_factory, credential).setapplicationname(application_name).build();         channel channel = new channel();          channel.setid(uuid.randomuuid().tostring());         channel.settype("web_hook");         channel.setaddress("https://389825dc.ngrok.io/gdriverest/app/gdrive/webhook");         startpagetoken page = service.changes().getstartpagetoken().execute();         gdrive.savedpagetoken = page.getstartpagetoken();         service.changes().watch(savedpagetoken, channel).execute();     } 

and following 1 webhook:

    @post     @path("/webhook")     public void webhook(@context httpservletrequest request, @context httpservletresponse response) throws ioexception {         credential credential = initflow().loadcredential("user");         drive service = new drive.builder(http_transport, json_factory, credential).setapplicationname(application_name).build();         string pagetoken = savedpagetoken;          while (pagetoken != null) {             changelist changes = service.changes().list(pagetoken).execute();              (change change : changes.getchanges()) {                 log.info("change found file: " + change.getfileid());             }             if (changes.getnewstartpagetoken() != null) {                 savedpagetoken = changes.getnewstartpagetoken();             }             pagetoken = changes.getnewstartpagetoken();         }         response.setstatus(200);     } 

this error:

caused by: com.google.api.client.googleapis.json.googlejsonresponseexception: 403 forbidden {   "code" : 403,   "errors" : [ {     "domain" : "usagelimits",     "message" : "user rate limit exceeded",     "reason" : "userratelimitexceeded"   } ],   "message" : "user rate limit exceeded" } 

why happening?

there error in code. had change following:

pagetoken = changes.getnewstartpagetoken(); 

to

pagetoken = changes.getnextpagetoken(); 

the huge amount of queries because requesting on every loop new start page token, forcing infinite loop.


Comments

Popular posts from this blog

python - Selenium remoteWebDriver (& SauceLabs) Firefox moseMoveTo action exception -

html - How to custom Bootstrap grid height? -

transpose - Maple isnt executing function but prints function term -