我有一个有谷歌登录的rails应用程序。我正在使用&om; omniauth-google-oauth2'宝石。在用户授权后,我将以OmniAuth :: AuthHash的形式获得凭据。
我打算使用" google_contacts_api"获取用户的联系人,这要求我有一个OAuth2 :: AccessToken来获取联系人。并且为了创建相同的,我需要OAuth2 :: Client来创建AccessToken。我想知道
答案 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。
希望这有帮助! :)