我用于身份验证django-allauth。 我能够通过
获得一些用户数据google_account = SocialAccount.objects.get(user=user, provider='google').extra_data
但我不知道如何获得access_token。我用过
access_token = extra_data.get('access_token')
但是这个返回无 我也尝试不使用 .extra_data
google_account = SocialAccount.objects.get(user=user, provider='google')
social_token = google_account.socialtoken_set.first()
我怎样才能拿到令牌并显示所有邮件
我用:
try:
service = build('gmail', 'v1', credentials=credentials)
# Fetch the user's 10 most recent emails
results = service.users().messages().list(userId='me', maxResults=10).execute()
messages = results.get('messages', [])
# Print the subject line of each message
for message in messages:
msg = service.users().messages().get(userId='me', id=message['id']).execute()
return msg['payload']['headers'][16]['value']
except HttpError as error:
return f'An error occurred: {error}'
设置.py
SOCIALACCOUNT_PROVIDERS = {
'google': {
'SCOPE': ['profile', 'email'],
'AUTH_PARAMS': {'access_type': 'online'},
'SOCIALACCOUNT_QUERY_EMAIL': True,
'APP': {
'client_id': os.environ.get('GOOGLE_CLIENT_ID'),
'secret': os.environ.get('GOOGLE_SECRET'),
'key': ''
}
}}
SOCIALACCOUNT_QUERY_EMAIL=True
SOCIAL_AUTH_ENABLED_BACKENDS = ['google', 'google-oauth']