首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用elance "get_access_token“方法是否返回访问令牌?

使用elance "get_access_token“方法是否返回访问令牌?
EN

Stack Overflow用户
提问于 2014-04-03 05:51:48
回答 1查看 135关注 0票数 0

我使用' Elance‘创业板在rails项目中集成elance,然后使用内置的方法进行身份验证和获取访问令牌。

在此库/元素/身份验证。

代码语言:javascript
复制
#!/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_access_token方法没有返回令牌,当我注释行时,它会给出错误的未定义的方法"ap“,然后总是返回true。并将参数作为auth_code传递,这是从request_access_code方法得到的。

我使用rails 4.0.4,ruby 2.1.1

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

请让我知道

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2014-04-03 13:27:17

ap方法来自印刷宝石。如果我们查看elance宝石的运行时依赖项,我们会发现没有列出awesome_print,所以当您在Gemfile中包含elance时,它不是自动安装的。但是,它曾经是;elance项目上的此承诺显示了awesome_print作为依赖项被移除的位置。在上面的代码中,在删除依赖项时,它们似乎没有删除所有的awesome_print方法调用。

我会在elance项目上提出一个问题来解决这个问题。同时,如果您不想对违规行进行注释,可以尝试在Gemfile中包含awesome_print gem。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22828903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档