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
First of all, I think this issue is not caused by django-gmailapi-backend but a Google OAuth2, even so, I expose my case for if I'm wrong.
I configured the package with GMAIL_API_CLIENT_ID, GMAIL_API_CLIENT_SECRET and GMAIL_API_REFRESH_TOKEN and everything works fine until today.
Six months ago ( exactly six month ago, for this I think it's not a issue of this package ), I created the credentials from GCP, and suddenly today, without any change, I started to get google.auth.exceptions.RefreshError: ('invalid_grant: Token has been expired or revoked.', '{\n "error": "invalid_grant",\n "error_description": "Token has been expired or revoked."\n}')
By now, I fixed this issue by generating again the refresh token by using gmail_oauth2 --generate_oauth2_token ... as the first time I did and replace it for the old one and now seems to work.
I've read that after 6 months, if refresh token is not used, refresh token is expired, so my question is, is the refresh token never used by django-gmailapi-backend?
My understanding is yes, because the access token expires after 1 hour and uses de refresh token to renew it, and almost every day my app is sending mails and I have'nt found no problem until now.
If helps, my OAuth consent screen is of type Internal, I don't know if this can be a reason of the trouble.
For more details, I let the full error traceback:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py", line 136, in handle
self.handle_request(listener, req, client, addr)
File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py", line 179, in handle_request
respiter = self.wsgi(environ, resp.start_response)
File "/usr/local/lib/python3.8/site-packages/django/core/handlers/wsgi.py", line 133, in __call__
response = self.get_response(request)
File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py", line 130, in get_response
response = self._middleware_chain(request)
File "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 49, in inner
response = response_for_exception(request, exc)
File "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 115, in response_for_exception
log_response(
File "/usr/local/lib/python3.8/site-packages/django/utils/log.py", line 224, in log_response
getattr(logger, level)(
File "/usr/local/lib/python3.8/logging/__init__.py", line 1475, in error
self._log(ERROR, msg, args, **kwargs)
File "/usr/local/lib/python3.8/logging/__init__.py", line 1589, in _log
self.handle(record)
File "/usr/local/lib/python3.8/logging/__init__.py", line 1599, in handle
self.callHandlers(record)
File "/usr/local/lib/python3.8/logging/__init__.py", line 1661, in callHandlers
hdlr.handle(record)
File "/usr/local/lib/python3.8/logging/__init__.py", line 954, in handle
self.emit(record)
File "/usr/local/lib/python3.8/site-packages/django/utils/log.py", line 122, in emit
self.send_mail(subject, message, fail_silently=True, html_message=html_message)
File "/usr/local/lib/python3.8/site-packages/django/utils/log.py", line 125, in send_mail
mail.mail_admins(subject, message, *args, connection=self.connection(), **kwargs)
File "/usr/local/lib/python3.8/site-packages/django/core/mail/__init__.py", line 104, in mail_admins
mail.send(fail_silently=fail_silently)
File "/usr/local/lib/python3.8/site-packages/django/core/mail/message.py", line 284, in send
return self.get_connection(fail_silently).send_messages([self])
File "/usr/local/lib/python3.8/site-packages/gmailapi_backend/mail.py", line 61, in send_messages
batch.execute()
File "/usr/local/lib/python3.8/site-packages/googleapiclient/_helpers.py", line 134, in positional_wrapper
return wrapped(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/googleapiclient/http.py", line 1557, in execute
self._refresh_and_apply_credentials(request, http)
File "/usr/local/lib/python3.8/site-packages/googleapiclient/http.py", line 1249, in _refresh_and_apply_credentials
_auth.refresh_credentials(creds)
File "/usr/local/lib/python3.8/site-packages/googleapiclient/_auth.py", line 130, in refresh_credentials
return credentials.refresh(request)
File "/usr/local/lib/python3.8/site-packages/google/oauth2/credentials.py", line 208, in refresh
access_token, refresh_token, expiry, grant_response = _client.refresh_grant(
File "/usr/local/lib/python3.8/site-packages/google/oauth2/_client.py", line 248, in refresh_grant
response_data = _token_endpoint_request(request, token_uri, body)
File "/usr/local/lib/python3.8/site-packages/google/oauth2/_client.py", line 124, in _token_endpoint_request
_handle_error_response(response_body)
File "/usr/local/lib/python3.8/site-packages/google/oauth2/_client.py", line 60, in _handle_error_response
raise exceptions.RefreshError(error_details, response_body)
google.auth.exceptions.RefreshError: ('invalid_grant: Token has been expired or revoked.', '{\n "error": "invalid_grant",\n "error_description": "Token has been expired or revoked."\n}')
If somone can bring me some light of this problem I will be very grateful.
Thank you very much in advance,
The text was updated successfully, but these errors were encountered:
Hi,
First of all, I think this issue is not caused by
django-gmailapi-backend
but a Google OAuth2, even so, I expose my case for if I'm wrong.I configured the package with GMAIL_API_CLIENT_ID, GMAIL_API_CLIENT_SECRET and GMAIL_API_REFRESH_TOKEN and everything works fine until today.
Six months ago ( exactly six month ago, for this I think it's not a issue of this package ), I created the credentials from GCP, and suddenly today, without any change, I started to get
google.auth.exceptions.RefreshError: ('invalid_grant: Token has been expired or revoked.', '{\n "error": "invalid_grant",\n "error_description": "Token has been expired or revoked."\n}')
By now, I fixed this issue by generating again the refresh token by using
gmail_oauth2 --generate_oauth2_token ...
as the first time I did and replace it for the old one and now seems to work.I've read that after 6 months, if refresh token is not used, refresh token is expired, so my question is, is the refresh token never used by
django-gmailapi-backend
?My understanding is yes, because the access token expires after 1 hour and uses de refresh token to renew it, and almost every day my app is sending mails and I have'nt found no problem until now.
If helps, my OAuth consent screen is of type
Internal
, I don't know if this can be a reason of the trouble.For more details, I let the full error traceback:
If somone can bring me some light of this problem I will be very grateful.
Thank you very much in advance,
The text was updated successfully, but these errors were encountered: