rta*_*oni 6 ruby openid rubygems oauth
我正在使用devise登录omniauth,authid.当用户登录时,我得到了
user_info:
name: Riccardo Tacconi
last_name: Tacconi
email: email@gmail.com
first_name: Riccardo
uid: https://www.google.com/accounts/o8/id?id=xxxxxxxxx
provider: google_apps
Run Code Online (Sandbox Code Playgroud)
我发现了一个插件:http://stakeventures.com/articles/2009/10/06/portable-contacts-in-ruby获取谷歌联系人.我只需要使用这个方法:
@client = PortableContacts::Client.new "http://www-opensocial.googleusercontent.com/api/people", @access_token
Run Code Online (Sandbox Code Playgroud)
但我需要一个令牌.我只有uid.您是否知道如何获取访问令牌?没有关于访问谷歌的任何文档.
这个问题的答案相当复杂。Pelle 的便携式联系人解析器依赖于他的oauthgem。您也许能够从omniauth/authid 为您提供的任何内容手动构造令牌对象(密钥/秘密对),但这可能是一些非常混乱的代码。
Ruby 官方支持的 OAuth 客户端是Signet。然而,Pelle 的解析器仅设计用于他的 OAuth 实现,因此,这里的故事也大致相同。您也许能够从他的客户那里撕下解析代码并将其与 Signet 结合使用,但和以前一样,如果您沿着这条路线走下去,您的工作就已经完成了。
也许今天最简单的事情就是使用oauthgem 并接受 Pelle 强加给你的依赖树。
编辑:过了一段时间,google-api-client宝石可能会为您提供此时所需的东西。支持 OAuth 1 和 2,并在许多情况下提供对某些 Google API 的基于发现的访问。不幸的是,联系人 API 目前不在列表中,但客户端仍然能够在不使用发现的情况下向 API 发出请求,尽管在这种情况下需要更多的手动操作(因为您需要向其传递它将授权的 HTTP 请求,并且您基本上是你自己进行解析)。
| 归档时间: |
|
| 查看次数: |
962 次 |
| 最近记录: |