簡體   English   中英

Ruby Net :: HTTP發布參數刪除錯誤

[英]Ruby Net::HTTP post parameters strip error

我通過api將數據發布到webhooks,它使用oauth。

我收到脫衣舞曲錯誤,這是我的腳本

require 'rubygems'
require 'oauth'
require 'uri'
require 'cgi'
require 'json'
require 'rest-client'

@api_key = "xx"
@api_secret = "xx"
#consumer = OAuth::Consumer.new(@api_key, @api_secret)
#@auth = OAuth::AccessToken.new("xx","xx")

def make_request(endpoint,method = "POST",params)
    consumer = OAuth::Consumer.new(@api_key, @api_secret)
    auth = OAuth::AccessToken.new(consumer)
    #puts consumer
    base_url = 'https://api.xx.com/v1/'

    # The verify credentials endpoint returns a 200 status if
    # the request is signed correctly.
    address = URI(base_url+endpoint)

    # Set up Net::HTTP to use SSL, which is required by Twitter.
    http = Net::HTTP.new address.host, address.port
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Build the request and authorize it with OAuth.
    request = Net::HTTP::Post.new address.request_uri,params
    request.oauth! http, consumer,auth

    # Issue the request and return the response.
    http.start
    request.add_field('Content-Type', 'application/json')
    request.body = params.to_json
    response = http.request request
    JSON.parse response.body

    # Parse and print the Tweet if the response code was 200
    puts "The response status was #{response.code}\n"
    puts "The response status was #{response.body}"

end



params = {
    "type" => "change",
    "product" => {
            "id" => "1QZC8wchX62eCYS2CACmka"
        }
}

webhook_id = '7JcGN81u'
endpoint = "webhooks/#{webhook_id}/events"

eventObject = make_request(endpoint,"POST",params)
puts eventObject["id"]
puts eventObject["type"]
puts eventObject["product"]

錯誤:

/home/mounarajan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/net/http/header.rb:17:in `block in initialize_http_header': undefined method `strip' for {"id"=>"1QZC8wchX62eCYS2CACmka"}:Hash (NoMethodError)
    from /home/x/.rbenv/versions/2.1.2/lib/ruby/2.1.0/net/http/header.rb:15:in `each'
    from /home/x/.rbenv/versions/2.1.2/lib/ruby/2.1.0/net/http/header.rb:15:in `initialize_http_header'
    from /home/x/.rbenv/versions/2.1.2/lib/ruby/2.1.0/net/http/generic_request.rb:44:in `initialize'
    from /home/x/.rbenv/versions/2.1.2/lib/ruby/2.1.0/net/http/request.rb:14:in `initialize'
    from test1.rb:29:in `new'
    from test1.rb:29:in `make_request'
    from test1.rb:57:in `<main>'

如何克服此錯誤並發布數據。

這是oauth發布身份驗證的地方

request.oauth! http, consumer,auth

錯誤在哪里?

嘗試:

params = {
    "type" => "change",
    "product" => "1QZC8wchX62eCYS2CACmka"
}

它應該工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM