You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Batch Execute raising errors when user revokes credentials #319
Basically the execute method in BatchHttpRequest was throwing an exception when
a single user's credentials were revoked and there was no way to identify which
user had bad credentials because it never got to the callback function.
Please see my stack overflow post for further details:
http://stackoverflow.com/questions/21150275/batch-request-to-multiple-users-fail
s-if-one-user-revokes-access
I tracked this down and fixed for myself with this patch. I'm not sure if this
is the best way to do it, but
--- /google-api-python-client-1ab344e0a34d/apiclient/http.py
+++ /google-api-python-client-patched/apiclient/http.py
@@ -50,7 +50,7 @@
from model import JsonModel
from oauth2client import util
from oauth2client.anyjson import simplejson
-
+from oauth2client.client import AccessTokenRefreshError
DEFAULT_CHUNK_SIZE = 512*1024
@@ -1299,10 +1299,13 @@
for request_id in self._order:
resp, content = self._responses[request_id]
if resp['status'] == '401':
- redo_order.append(request_id)
- request = self._requests[request_id]
- self._refresh_and_apply_credentials(request, http)
- redo_requests[request_id] = request
+ try:
+ request = self._requests[request_id]
+ self._refresh_and_apply_credentials(request, http)
+ redo_order.append(request_id)
+ redo_requests[request_id] = request
+ except AccessTokenRefreshError:
+ pass
if redo_requests:
self._execute(http, redo_order, redo_requests)
Original issue reported on code.google.com by bl...@oybro.com on 16 Jan 2014 at 1:16
Activity