在ROR中从访问令牌获取Google联系人

时间:2016-03-28 23:10:03

标签: ruby-on-rails oauth omniauth google-contacts google-oauth2

我有一个有谷歌登录的rails应用程序。我正在使用&om; omniauth-google-oauth2'宝石。在用户授权后,我将以OmniAuth :: AuthHash的形式获得凭据。

我打算使用" google_contacts_api"获取用户的联系人,这要求我有一个OAuth2 :: AccessToken来获取联系人。并且为了创建相同的,我需要OAuth2 :: Client来创建AccessToken。我想知道

  1. 如何使用OmniAuth策略创建客户端,第二个
  2. 有没有更好的方法来创建OAuth2 :: AccessToken?

1 个答案:

答案 0 :(得分:0)

<强> 1。如何使用OmniAuth策略创建客户端?

根据此documentation,您首先需要一个API端点,该端点将返回资源所有者的凭据,以便为您的提供商创建策略。您需要定义类并包含适当的模块。如果您在OmniAuth::Strategies中定义类,则命名空间将允许在OmniAuth::Builder调用中通过符号名称而不是类来声明它。

require 'omniauth'

module OmniAuth
  module Strategies
    class Developer
      include OmniAuth::Strategy
    end
  end
end

检查此tutorial及相关的SO question

<强> 2。有没有更好的方法来创建OAuth2 :: AccessToken?

要使用Oauth2,您必须在Google API Console中注册您的项目并启用Contacts API服务。每次进行API调用时,您都需要获得用于“重新验证”谷歌的“刷新令牌”。您可以查看步骤here

希望这有帮助! :)