我在我的 Rails 应用程序中实现了 google 登录功能,现在的场景是在我的应用程序中获取 google plus 联系人。
有一个可用的 Google Plus gem,但我不确定是否可以使用该 gem 来满足我的要求。
什么是最好的解决方案。
问候, 卡兰
我在我的 Rails 应用程序中实现了 google 登录功能,现在的场景是在我的应用程序中获取 google plus 联系人。
有一个可用的 Google Plus gem,但我不确定是否可以使用该 gem 来满足我的要求。
什么是最好的解决方案。
问候, 卡兰
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.
我也遇到过同样的情况,没有明确的答案。您使用什么宝石进行 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