gpt4 book ai didi

google-drive-api - Google Drive OAuth 2 流程给出 invalid_scope 错误

转载 作者:行者123 更新时间:2023-12-03 07:46:26 24 4
gpt4 key购买 nike

在将代码交换为访问 token 时,我的 Google 云端硬盘应用会请求以下范围:

https://www.googleapis.com/auth/drive.file
https://www.googleapis.com/auth/userinfo.email
https://www.googleapis.com/auth/userinfo.profile
https://www.googleapis.com/auth/drive.install

特别是,这是在交换期间最终从 Google 请求的 URL 的查询字符串:

code=XXXXXXXXXX&grant_type=authorization_code&redirect_uri=XXXXXXXXXX&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.file+ https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email + https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile +https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.install &client_id=XXXXXX.apps.googleusercontent.com&client_secret=XXXXXX

响应是 400 错误,错误消息为“invalid_scope”。我做错了什么?

[编辑]附加信息:

仅当用户从 Google 云端硬盘中点击创建新文档时,才会发生此错误。如果我从自己的应用程序启动身份验证/授权流程,则可以很好地接受范围列表。如果用户单击实际的云端硬盘应用程序来创建新文档,我会得到 invalid_scopes。

无效范围是drive.install。如果当用户出现创建新文档时我从请求范围列表中删除它,事情就会再次开始工作。这有任何意义吗?如果用户已经通过我们请求该范围安装了云端硬盘应用,为什么当用户从云端硬盘应用中出现时请求相同的范围会导致任何类型的问题?

最佳答案

我也遇到过类似的问题。解决方案是将一系列范围传递给 google 客户端:

google_client.authorization.scope=[
'https://www.googleapis.com/auth/calendar.readonly',
'https://www.googleapis.com/auth/drive.appdata']

而不是范围的串联字符串

google_client.authorization.scope="https://www.googleapis.com/auth/calendar.readonly%2Bhttps://www.googleapis.com/auth/drive.appdata" 

Rails 日志中的 GET 请求看起来相同,但结果却截然不同!

关于google-drive-api - Google Drive OAuth 2 流程给出 invalid_scope 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16633297/

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