【发布时间】:2012-02-21 13:17:10
【问题描述】:
我正在使用 oauth 访问 google 提供的不同服务。我能够为每个服务生成令牌。但我想生成单个令牌以使用来自谷歌的多个服务。 谁能告诉我解决方法?
【问题讨论】:
标签: oauth google-api
我正在使用 oauth 访问 google 提供的不同服务。我能够为每个服务生成令牌。但我想生成单个令牌以使用来自谷歌的多个服务。 谁能告诉我解决方法?
【问题讨论】:
标签: oauth google-api
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 当前设置为失败且分散。
【讨论】: