我是ROR的新手,我的应用程序需要使用Oauth2与第三方API(ZohoCRM)连接。因此,在每次调用之前,我需要使用令牌(如果过期则需要刷新令牌),而无需使用devise gem。我的意思是,我需要在后台连接到API(例如,创建用户时,请检查该电子邮件地址是否已经在ZohoCRM上,如果没有创建新帐户)。
Zoho文档:https://www.zoho.com/crm/help/developer/api/auth-request.html 而我正在使用:
Rails 4.2.11.1
ruby 2.5.1p57
我尝试使用门卫宝石https://github.com/doorkeeper-gem/doorkeeper 但它与用户有关,似乎不适用于我的Rails版本
Doorkeeper currently supports Ruby on Rails >= 5.0
我还检查了oauth2 gem https://github.com/oauth-xx/oauth2,但我不知道如何正确使用它。
正如我所提到的,我是ROR的新手,我不正确地了解如何集成此oauth2 gem https://github.com/oauth-xx/oauth2。我应该有: 1-一些路由和/或一些初始化器 2-进行身份验证的某些服务 3-一些模型可以拨打电话。
在“使用示例”下的oauth2页面上是这样:
require 'oauth2'
client = OAuth2::Client.new('client_id', 'client_secret', :site => 'https://example.org')
client.auth_code.authorize_url(:redirect_uri => 'http://localhost:8080/oauth2/callback')
# => "https://example.org/oauth/authorization?response_type=code&client_id=client_id&redirect_uri=http://localhost:8080/oauth2/callback"
token = client.auth_code.get_token('authorization_code_value', :redirect_uri => 'http://localhost:8080/oauth2/callback', :headers => {'Authorization' => 'Basic some_password'})
response = token.get('/api/resource', :params => { 'query_foo' => 'bar' })
response.class.name
# => OAuth2::Response
但是我不知道我应该把这段代码放在哪里,以及如何/在哪里放置这些代码,以使其发挥作用。
最后,我想像这样使用它
ZohoCrm::Contact.find(@user.crm_id)
或
ZohoCrm::Contact.update(
id: contactid,
email: new_email
)
我查找/搜索了一些示例,但找不到任何有用的信息。
您能帮我理解/弄清楚如何实现吗?
非常感谢您!!!!
编辑: 没有主意吗