如何从Django内部调用GoogleAPI?

2024-03-28 22:58:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在尝试使用Python和Django构建一个web应用程序,它需要来自Google日历API的信息。我已经成功地创建了使用Google云控制台所需的特定API凭据,并下载了用于身份验证的客户端机密JSON文件。我还能够使用以下代码片段成功访问API:

from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow

scopes = ['https://www.googleapis.com/auth/calendar']

flow = InstalledAppFlow.from_client_secrets_file(r"client secret file location", scopes=scopes)

flow.run_console()

当我在VSCode中运行它时,它会在终端中创建一个链接,我可以单击该链接进入Google站点并登录。但我现在遇到的问题是,API将其视为PC应用程序调用,一旦它在我的浏览器中打开,它就会要求我重新创建API密钥(因为我创建的API密钥是为Web应用程序创建的)。错误的图片可以在这里看到:

Authorization Error Message from Google

现在我的问题是,有没有一种方法可以调用API并使用Django验证用户登录?我很犹豫是否要将API凭据重新制作为桌面应用程序,因为我正在开发的毕竟是一个Web应用程序。不确定如何在API被单个用户的凭据密码锁定时调用它。任何建议都很好


Tags: djangofromimportclientauthapiweb应用程序