我正在尝试遵循以下指南: https://developers.google.com/appengine/docs/java/endpoints/auth
我已按照步骤添加了客户端ID和User参数,当null时抛出OAuthRequestException异常。
当我使用API资源管理器部署到Google并访问API时,我在访问没有OAuth的API时会遇到预期的未经授权的异常。到目前为止一切顺利!
它建议切换OAuth 2.0切换。我这样做,我收到一条消息说:
* API不会声明任何范围。您可以使用下面的框
手动添加范围该消息还指示我: http://code.google.com/apis/accounts/docs/OAuth2.html 了解有关Scopes的更多信息。
但该建议页面上的范围信息非常有限。我是OAuth的新手,尽管正在搜索Google和StackOverflow 我不确定范围是什么? 我如何在API中声明? 当我手动向API资源管理器提示添加内容时,我收到一条错误消息,指出它是invalid_scope。那么什么是有效范围?
答案 0 :(得分:5)
要使用云端点进行身份验证,您需要请求此范围:
https://www.googleapis.com/auth/userinfo.email
云端点库需要用户的电子邮件地址才能从中创建用户实体。
请参阅https://developers.google.com/appengine/docs/java/endpoints/consume_js#adding-oath-authentication以供参考。
答案 1 :(得分:1)
虽然@ Scarygami的回答在2013年可能是正确的,但现在你应该使用这个范围:
https://www.googleapis.com/auth/plus.profile.emails.read
您可以找到关于旧email
范围的警告:
警告:不推荐使用此范围。谷歌将不再支持这一点 2014年9月1日之后的范围。有关详细信息,请参阅迁移到Google+ 登入。
有关范围的更多信息:https://developers.google.com/+/api/oauth
修改强>
在支持旧email
范围方面看起来有些变化。这是实际的陈述。
注意:此范围已弃用;但是,它将得到维护 保持可用于向后兼容。有关的解释 此更改请参阅迁移至Google+登录。
答案 2 :(得分:0)
这可能会有所帮助。谷歌的范围文档。
https://developers.google.com/drive/training/drive-apps/auth/scopes