0

我在我的 Rails 应用程序中实现了 google 登录功能,现在的场景是在我的应用程序中获取 google plus 联系人。

有一个可用的 Google Plus gem,但我不确定是否可以使用该 gem 来满足我的要求。

什么是最好的解决方案。

问候, 卡兰

4

2 回答 2

0

You can use the Google APIs Ruby Client and do something like:

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

# Code to authorize the client.
...

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

Where the code that you need to authorize the client depends on the flow that you are using to implement the login.

于 2013-05-29T19:45:55.687 回答
0

我也遇到过同样的情况,没有明确的答案。您使用什么宝石进行 Google 授权?如果您使用omniauth-google-oauth2,解决方案如下:

我发现一个人在你要求的部分应用程序完成后遇到不同问题的帖子,你可以在这里找到它 - http://blog.baugues.com/google-calendar-api-oauth2-and-ruby -在轨

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

 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
于 2013-06-22T15:29:35.880 回答