我目前正在尝试建立一个使用Python和Django的web应用程序,这将需要从谷歌日历API的信息。我已经成功地使用Google Cloud控制台创建了所需的特定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中运行它时,它会在终端中创建一个链接,我可以单击该链接转到谷歌站点并登录。我现在遇到的问题是,API将其视为PC应用程序调用,一旦它在我的浏览器中打开,它就会要求我重新创建API密钥(因为我创建的密钥是用于Web应用程序的)。错误的图片可以在这里看到:
Authorization Error Message from Google
现在我的问题是,有没有一种方法可以调用API并使用Django验证用户登录?我在犹豫要不要将API凭证重新制作为桌面应用程序,因为我正在开发的毕竟是一个Web应用程序。不确定当API被单个用户的凭据设置为密码时,如何调用该API。任何建议都是很棒的!
发布于 2021-05-12 15:15:56
我想通了。使用了错误的流程。相反,流水线应该是:
flow = google_auth_oauthlib.flow.Flow.from_client_secrets_file(r"client secret file location", scopes=scopes)
https://stackoverflow.com/questions/67245593
复制相似问题