我正在尝试遵循以下指南:https://developers.google.com/appengine/docs/java/endpoints/auth
我已经按照步骤并添加了客户端id和User参数,当null时我抛出OAuthRequestException异常。
当我部署到Google并使用API Explorer访问API时,在没有OAuth的情况下访问API时,我得到了预期的未经授权的异常。到目前为止,一切都很好!
建议切换OAuth 2.0开关。我这样做,我得到一个消息说:
* API没有声明任何作用域。您可以使用
下面的框手动添加作用域消息还引导我到:http://code.google.com/apis/accounts/docs/OAuth2.html来了解更多的作用域。
但是在建议页面上关于作用域的信息非常有限。我是OAuth的新手,尽管搜索了谷歌和StackOverflow我不太清楚瞄准镜是什么?如何在API中声明on ?当我手动添加一些东西到API资源管理器提示符时,我得到一个错误消息,说它是invalid_scope。那么什么是有效作用域呢?
要使用云端点进行身份验证,您需要请求以下作用域:
https://www.googleapis.com/auth/userinfo.email
云端点库需要用户的电子邮件地址来创建一个user实体。
参考:https://developers.google.com/appengine/docs/java/endpoints/consume_js#adding-oath-authentication
@Scarygami的答案在2013年可能是正确的,现在你应该使用这个范围:
https://www.googleapis.com/auth/plus.profile.emails.read
您可以找到关于旧email
范围的警告:
警告:此作用域已弃用。谷歌将不再支持此功能2014年9月1日后的范围。具体操作请参见迁移到Google+登录。
关于作用域的更多信息:https://developers.google.com/+/api/oauth
编辑:看起来在支持旧的email
作用域方面发生了一些变化。下面是实际的语句。
注意:此作用域已弃用;然而,它将被维护和保持向后兼容性。为了得到关于此更改,请参阅迁移到Google+登录。
这可能有帮助。
https://developers.google.com/drive/training/drive-apps/auth/scopes