3

我正在尝试遵循以下指南: 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 新手,尽管搜索了 Google 和 StackOverflow,但我不确定范围是什么?如何在 API 中声明?当我手动将某些内容添加到 API 资源管理器提示时,我收到一条错误消息,指出它是一个 invalid_scope。那么什么是有效范围?

4

3 回答 3

5

要使身份验证与云端点一起使用,您需要请求此范围:

https://www.googleapis.com/auth/userinfo.email

云端点库需要用户的电子邮件地址才能从中创建用户实体。

请参阅https://developers.google.com/appengine/docs/java/endpoints/consume_js#adding-oath-authentication以供参考。

于 2013-05-04T14:33:39.320 回答
1

While @Scarygami's answer could be correct in 2013, now you should use this scope:

https://www.googleapis.com/auth/plus.profile.emails.read

You can find warning about old email scope:

Warning: This scope is deprecated. Google will no longer support this scope after Sept. 1, 2014. For details, see Migrating to Google+ Sign-In.

More about scopes: https://developers.google.com/+/api/oauth

EDIT:

Looks like something has changed in the matter of supporting old email scope. Here's the actual statement.

Note: This scope is deprecated; however, it will be maintained and kept available for backward compatibility. For an explanation about this change, see Migrating to Google+ Sign-In.

于 2014-08-19T18:25:57.620 回答
0

这可能会有所帮助。来自谷歌的范围文档。

https://developers.google.com/drive/training/drive-apps/auth/scopes

于 2013-05-04T10:13:34.973 回答