Ruby on rails 使用elance gem“;获取“U访问”令牌;方法不是返回访问令牌?

Ruby on rails 使用elance gem“;获取“U访问”令牌;方法不是返回访问令牌?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我使用'Elance'gem将Elance API集成到rails项目中,然后使用内置方法进行身份验证并获取访问令牌 这里是lib/elance/authentication.rb #!/usr/bin/env ruby # encoding: utf-8 require 'curb' require "base64" require 'uri' module Elance class Authentication @@authorize_url = "https://api.elan

我使用'Elance'gem将Elance API集成到rails项目中,然后使用内置方法进行身份验证并获取访问令牌

这里是lib/elance/authentication.rb

#!/usr/bin/env ruby
# encoding: utf-8

require 'curb'
require "base64"
require 'uri'

module Elance
 class Authentication
  @@authorize_url = "https://api.elance.com/api2/oauth/authorize"
  @@access_token_url = "https://api.elance.com/api2/oauth/token"

  def initialize(client_id, client_secret)
    @client_id = client_id
    @client_secret = client_secret
    @curl_headers = []
    @response_code = 0
  end

  def request_access_code(redirect_url)
    @@authorize_url + "?client_id=" + @client_id + "&response_type=code&redirect_uri=" + redirect_url
  end

  def init_curl(url)
    c = Curl::Easy.new( url )
    c.set(:ENCODING, 1)
    c.set(:SSL_VERIFYPEER, false)
    c.set(:CAINFO, "/etc/ssl/certs/ca-certificates.crt")
    c
  end

  def get_access_token(auth_code)
    c = self.init_curl( @@access_token_url )
    c.headers['Authorization'] = "Basic "+ Base64.encode64(@client_id + ":" + @client_secret)
    c.http_post(Curl::PostField.content('code', URI.escape(auth_code)),
                    Curl::PostField.content('grant_type', 'authorization_code'))
    res = c.perform
    ap res
    res
  end

  def exec_request(url, access_token)
    c = self.init_curl( url )
    c.headers['Authorization'] = "Basic "+ access_token
    c.perform
    c.body_str
  end
end
end
在上面的文件中,get\u access\u token方法并没有返回token,当我注释行时,它给出了错误的未定义方法“ap”,然后总是返回true。我以auth_代码的形式传递参数,auth_代码是从request_access_code方法获得的

我使用了rails 4.0.4、ruby 2.1.1

所以,我需要一些帮助来做这件事,然后下一步行动

请让我知道


提前感谢

ap
方法来自。如果我们查看的运行时依赖项,我们会发现awesome_print没有列出,因此当您在Gemfile中包含elance gem时,它不会自动安装。但过去是,;在elance项目上,显示了awesome_print作为依赖项被删除的位置。在上面的代码中,看起来在删除依赖项时,他们没有删除所有的awesome_print方法调用


我会在elance项目上提交一个问题来解决这个问题。同时,如果您不想注释掉有问题的行,您可以尝试在gem文件中包含awesome_print gem。

许多Thnx为了您的建议,我添加了'awesome_gem',然后删除了错误。但为什么它会返回真实响应而不是访问令牌。