google-api-java-client的版本: 谷歌的API-1.13.2-beta.jar Java环境: Java 6
描述问题。
我有一个问题。
我想使用OAuth 2.0 for Devices访问Google云端硬盘。
使用"https://www.googleapis.com/auth/drive"
范围是错误的。
在范围内使用"https://docs.google.com/feeds/"
时,我成功了。
我想知道我是否使用"https://docs.google.com/feeds/"
来使用“DriveAPI”I。
这是正确的用法吗?
请求
POST https://accounts.google.com/o/oauth2/device/code HTTP/1.1
client_id=xxxxx.apps.googleusercontent.com&scope=https://www.googleapis.com/auth/drive
Response: { "error" : "invalid_scope" }
响应:
POST https://accounts.google.com/o/oauth2/device/code HTTP/1.1
client_id=xxxxx.apps.googleusercontent.com&scope=https://docs.google.com/feeds/
Response:
{
"device_code" : "4/e6HcZHKPz-eExgLb_Ll9V8qoT1NP",
"user_code" : "zzwiv48b",
"verification_url" : "http://www.google.com/device",
"expires_in" : 1800,
"interval" : 5
}
您希望如何修复它? 我认为可以在“https://www.googleapis.com/auth/drive”我的范围内进行身份验证。
答案 0 :(得分:2)
你在协议中缺少一个h。尝试 https://docs.google.com/feeds/ ,而不是 ttps://docs.google.com/feeds/ 。对所有范围网址应用相同的更改
答案 1 :(得分:0)
我有完全相同的问题。 我已按照开发文档中的说明操作,并使用“www.googleapis.com/auth/drive”作为请求中的范围。 最后,我在回复中得到了“invalid_scope”。
所以我尝试使用“www.googleapis.com/auth/devstorage.full_control”作为范围,它有效!提示来自:https://cloud.google.com/storage/docs/authentication#oauth
BUT !!当我使用我创建的访问令牌列出谷歌驱动器帐户信息时,我收到错误代码403,消息是“权限不足”。
这是我以前申请帐户信息的原因: curl -H“授权:Bearer $ ACCESS_TOKEN”https://www.googleapis.com/drive/v2/about?key= $ APP_KEY
这让我很困惑......
答案 2 :(得分:0)
来自Google文档“使用OAuth 2.0 for Devices”(https://developers.google.com/identity/protocols/OAuth2ForDevices#allowedscopes):
对设备使用OAuth 2.0流时,只能访问以下范围:
- Analytics配置和报告API
- 日历API
- 通讯录API
- 云打印API
- 云端存储API
- Fitness REST API
- Fusion Tables API
- Google登录
- YouTube数据和直播API
我在此列表中看不到Drive API,我认为这是“invalid_scope”错误的原因