【问题标题】:Getting Google contacts from access token in ROR从 ROR 中的访问令牌获取 Google 联系人
【发布时间】:2016-07-16 07:48:25
【问题描述】:
我有一个带有谷歌登录的 Rails 应用程序。我正在使用“omniauth-google-oauth2”gem。在用户授权后,我以 OmniAuth::AuthHash 的形式获取凭据。
我打算使用“google_contacts_api”来获取用户的联系人,这需要我有一个 OAuth2::AccessToken 来获取联系人。为了创建相同的内容,我需要 OAuth2::Client 来创建 AccessToken。我想知道
- 如何使用 OmniAuth 策略和第二个创建客户端
- 有没有更好的方法来创建 OAuth2::AccessToken?
【问题讨论】:
标签:
ruby-on-rails
oauth
omniauth
google-contacts-api
google-oauth
【解决方案1】:
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。
希望这会有所帮助! :)