单个oauth令牌和秘密可以从谷歌访问多个服务

时间:2012-02-21 13:17:11

标签: oauth google-api

我正在使用oauth访问google提供的不同服务。我能够为每个服务生成令牌。但我想生成单个令牌来使用谷歌的多个服务。 谁能告诉我解决方案?

1 个答案:

答案 0 :(得分:5)

https://developers.google.com/accounts/docs/OAuth2

根据Google OAuth2文档,可以通过设置多个范围来实现此目的,但请注意,这不是一种愉快的体验。

发出请求时,请将scope参数设置为多个范围,每个范围用一个空格分隔。

示例:“https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email https://www.google.com/m8/feeds”

您目前可以在此处找到范围列表:https://developers.google.com/gdata/faq

不幸的是,API访问不是附加的,这意味着,如果您要求Google通讯录API的访问令牌,则稍后在上作为同一个应用程序请求Google Profile API的访问令牌,您将获得两个访问令牌,并且都不能用于访问其他API。 Facebook至少有礼貌地为您提供一个访问令牌,该令牌授予访问目前授予的所有权限的权限。

因此,你需要跟踪多个访问令牌(一个可怕的噩梦,因为它们很快就会过期),或者预先要求你的所有权限,这是一个用户体验灾难。

如果您想要进行紧密的,多方面的集成,Google API目前已经设置为分散且完全不同。