如何显示所有来自使用他的谷歌帐户登录到我的站点 Django 的 gmail 的消息

问题描述 投票:0回答:0

我用于身份验证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']
django gmail django-allauth google-api-python-client
© www.soinside.com 2019 - 2024. All rights reserved.