gpt4 book ai didi

python - 使用带有 token 的 Google API [Django & AllAuth]

转载 作者:行者123 更新时间:2023-12-04 14:23:09 26 4
gpt4 key购买 nike

我在我的 Django 应用程序上使用 AllAuth 来管理用户身份验证。有了它,我的用户可以连接他们的 Google 帐户,我会得到一个 google API token (具有适当的范围)。

我想使用该 token 通过该 token 访问谷歌 API(在我的情况下为 Calendar v3),因为我的用户已经使用 OAuth2 登录我的网站,并允许我访问日历 API。

谷歌只在他们的网站上提供了完整的过程(从身份验证到 api),有没有办法建立我的想法,或者根本不可能?

我试过了 drive = build('calendar', 'v3', credentials=credentials)如前所述 here但是“凭据”需要是 oauth2client 的一部分,而不仅仅是一个简单的字符串 token 。

感谢您的宝贵时间。

西蒙

最佳答案

我知道这是一个较旧的问题,但我终于找到了对我有用的东西。在使用 allauth 成功进行身份验证后,我这样做是为了获取客户端 token ,然后构建服务。

    from googleapiclient.discovery import build
from google.oauth2.credentials import Credentials
from allauth.socialaccount.models import SocialToken, SocialApp

...

# request is the HttpRequest object
token = SocialToken.objects.get(account__user=request.user, account__provider='google')

credentials = Credentials(
token=token.token,
refresh_token=token.token_secret,
token_uri='https://oauth2.googleapis.com/token',
client_id='client-id', # replace with yours
client_secret='client-secret') # replace with yours

service = build('calendar', 'v3', credentials=credentials)

关于python - 使用带有 token 的 Google API [Django & AllAuth],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51575127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com