gpt4 book ai didi

ruby - 无法在 Ruby 中使用 Typhoeus 生成 OAuth1 授权 header

转载 作者:数据小太阳 更新时间:2023-10-29 08:03:14 26 4
gpt4 key购买 nike

我正在尝试使用 Ruby 通过 Typhoeus 向 Bitbucket 的 API 发送请求,并且我正在使用来自“OAuth 消费者”页面的凭据 - consumer_keyconsumer_secret。我可以很好地获取 token ,但在尝试从 OAuth 帮助程序生成 header 时出现错误。这是相关代码(请注意,这不是 Rails;我使用的是 Sinatra):

# oauth_token and oauth_token_secret are from a request to https://bitbucket.org/api/1.0/oauth/request_token
@consumer = OAuth::Consumer.new(
consumer_key,
consumer_secret,
)
@token = OAuth::Token.new(oauth_token, oauth_token_secret)
options = {
method: :post,
body: body.to_json
}

oauth_params = {:consumer => @consumer, :token => @token}

hydra = Typhoeus::Hydra.new
url = "https://api.bitbucket.org/2.0/repositories/..."
req = Typhoeus::Request.new(url, options)
oauth_helper = OAuth::Client::Helper.new(req, oauth_params.merge(:request_uri => url))
req.options[:headers].merge!({"Authorization" => oauth_helper.header})

最后一行因 OAuth::RequestProxy::UnknownRequestType 错误而失败。基本上它的意思是 OAuth RequestProxy 不理解 Typhoeus::Request 对象;据我所知,它只支持 Net::HTTPGenericRequestHash。 Typhoeus 文档表明这应该有效,所以我可能做错了什么。

或者,有没有更好的方法来做到这一点?我应该使用不同的请求库吗? HTTParty 对这样的身份验证 header 没有很好的支持。谢谢!

最佳答案

您需要明确要求 RequestProxy。

require 'typhoeus'
require 'oauth'
require 'oauth/request_proxy/typhoeus_request'

关于ruby - 无法在 Ruby 中使用 Typhoeus 生成 OAuth1 授权 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34939450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com