Ruby Rails无需设计即可使用oauth2连接到第三方API

时间:2019-04-23 12:36:33

标签: ruby-on-rails-4 oauth-2.0

我是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
    )

我查找/搜索了一些示例,但找不到任何有用的信息。

您能帮我理解/弄清楚如何实现吗?

非常感谢您!!!!

编辑: 没有主意吗

0 个答案:

没有答案