我想我可能会遗漏一些明显的东西,但是我无法弄清楚问题的答案。
我在项目上设置了django-allauth
,添加了Google身份验证,启用了API,运行了服务器,并成功使用了该应用程序进行身份验证。
[我被困在这里:
一旦用户通过身份验证,我希望用户能够查看其日历,但是我无法弄清楚如何使用已通过身份验证的用户的凭据来构建凭据。
我知道要获取日历,我必须运行:
service = build('calendar', 'v3', credentials=creds)
calendar = service.calendars().get(calendarId='primary').execute()
print(calendar['summary'])
但是我不知道如何为credentials
建立值
非常感谢您的帮助。
我能够找到答案。
django-auth
在用户通过身份验证时创建SocialToken
的实例。 request.user
传递给模型对象的get
方法来找到该标记。 build
函数所需的凭据对象。from google.oauth2.credentials import Credentials
social_token = SocialToken.objects.get(account__user=request.user)
creds = Credentials(token=social_token.token,
refresh_token=social_token.token_secret,
client_id=social_token.app.client_id,
client_secret=social_token.app.secret)
service = build('calendar', 'v3', credentials=creds)
calendar = service.calendars().get(calendarId='primary').execute()