gpt4 book ai didi

ruby - 如何在 Ruby 中使用 OpenID 访问 Google 通讯录

转载 作者:数据小太阳 更新时间:2023-10-29 07:07:40 26 4
gpt4 key购买 nike

我正在使用 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

我找到了一个插件:http://stakeventures.com/articles/2009/10/06/portable-contacts-in-ruby获取 Google 通讯录。我只需要使用这个方法:

@client = PortableContacts::Client.new "http://www-opensocial.googleusercontent.com/api/people", @access_token

但我需要一个 token 。我只有uid。您知道如何获取访问 token 吗?没有任何关于访问谷歌的文档。

最佳答案

这个问题的答案相当复杂。 Pelle 的可移植联系人解析器依赖于他的 oauth gem。您也许可以手动构建 token object ( key / secret 对)来自 omniauth/authid 给你的任何东西,但它可能是一些非常困惑的代码。

Ruby 官方支持的 OAuth 客户端是 Signet .然而,Pelle 的解析器仅设计用于他的 OAuth 实现,因此这里的故事大致相同。您可能能够从他的客户那里撕下解析代码并将其与 Signet 结合,但和以前一样,如果您沿着这条路走下去,您的工作就完成了。

今天最简单的事情可能就是使用 oauth gem 并接受 Pelle 强加给你的依赖树。

编辑:稍后,google-api-client gem 可能会为您提供此时所需的内容。同时支持 OAuth 1 和 2,并提供基于发现的访问 certain Google APIs在许多情况下。不幸的是,联系人 API 当前不在 list 上但是客户端仍然能够在不使用发现的情况下向 API 发出请求,尽管在这种情况下它需要更多的手动操作(因为您需要将 HTTP 请求传递给它,它将授权并且您基本上需要自己进行解析)。

关于ruby - 如何在 Ruby 中使用 OpenID 访问 Google 通讯录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4324812/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com