[英]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.