在Rails应用中获取Google plus联系人

时间:2013-05-27 18:09:44

标签: ruby-on-rails-3 google-plus

我在我的Rails应用程序中实现了谷歌登录功能,现在的方案是在我的应用程序中获取谷歌加联系人。

有一款Google Plus宝石可用,但我不确定是否可以使用该宝石满足我的要求。

什么是最好的解决方案。

此致 卡兰

2 个答案:

答案 0 :(得分:0)

您可以使用Google APIs Ruby Client并执行以下操作:

client = Google::APIClient.new
plus = client.discovered_api('plus')

# Code to authorize the client.
...

result = client.execute(plus.people.list,
  :collection => 'visible',
  :userId => 'me')

您需要授权客户端的代码取决于您用于实现登录的流程。

答案 1 :(得分:0)

我遇到了同样的情况,没有明确的答案。 您使用Google授权的宝石是什么?如果你使用的是omniauth-google-oauth2,这就是解决方案:

我发现一个人遇到不同问题的帖子在您要求的部分申请完成后,您可以在这里找到 - http://blog.baugues.com/google-calendar-api-oauth2-and-ruby-on-rails

在代码中,这个控制器中的回调函数(登录后)应如下所示:

 def create  #lets say it is session#new controller
omniauth = request.env["omniauth.auth"]
authentication = Authentication.find_by_provider_and_uid(omniauth['provider'], omniauth['uid'])
initial_session(omniauth) unless current_user
 client = Google::APIClient.new()
 client.authorization.access_token = omniauth["credentials"]["token"]
 plus = client.discovered_api('plus')
 contacts = client.execute(plus.people.list, :collection => 'visible',
                                           :userId => 'me')
 raise contacts.inspect.to_s