我在我的Rails应用程序中实现了谷歌登录功能,现在的方案是在我的应用程序中获取谷歌加联系人。
有一款Google Plus宝石可用,但我不确定是否可以使用该宝石满足我的要求。
什么是最好的解决方案。
此致 卡兰
答案 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