2016-04-13 2 views
0

Это POST с использованием Ajax работает отлично:запрос POST к HTTPS с использованием запроса Net :: HTTP

var token = "my_token"; 

function sendTextMessage(sender, text) { 
    $.post('https://graph.facebook.com/v2.6/me/messages?', 
    { recipient: {id: sender}, 
     message: {text:text}, 
     access_token: token 
    }, 
    function(returnedData){ 
     console.log(returnedData); 
    }); 
}; 

sendTextMessage("100688998246663", "Hello"); 

мне нужно иметь один и тот же запрос, но в Ruby. Я попытался с Net: HTTP, но это не работает, и я не получаю сообщение об ошибке, так что я не могу отладить:

token = "my_token" 
    url = "https://graph.facebook.com/v2.6/me/messages?" 
    sender = 100688998246663 
    text = "Hello" 
    request = { 
       recipient: {id: sender}, 
       message: {text: text}, 
       access_token: token 
       }.to_json 


    uri = URI.parse(url) 
    http = Net::HTTP.new(uri.host, uri.port) 
    http.use_ssl = true 
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE 

    request = Net::HTTP::Post.new(uri.request_uri) 

    response = http.request(request) 
    response.body 

Как мне действовать, чтобы получить ошибку или где я ошибся ?

ответ

2

Ваш request хэш заменяется на ваш объект request, которому вы назначаете Net::HTTP. Также не забудьте установить запрос Params в теле вашего запроса HTTP:

require "active_support/all" 
require "net/http" 

token = "my_token" 
url = "https://graph.facebook.com/v2.6/me/messages?" 
sender = 100688998246663 
text = "Hello" 
request_params = { 
    recipient: {id: sender}, 
    message: {text: text}, 
    access_token: token 
} 

uri = URI.parse(url) 

response = Net::HTTP.new(uri.host, uri.port) 
http = Net::HTTP.new(uri.host, uri.port) 
http.use_ssl = true 
http.verify_mode = OpenSSL::SSL::VERIFY_NONE 

request = Net::HTTP::Post.new(uri.path, initheader = {'Content-Type' =>'application/json'}) 
request.body = request_params.to_json 

http.request(request) 

response = http.request(request) 

Вы можете найти следующую ссылку полезным: http://www.rubyinside.com/nethttp-cheat-sheet-2940.html

+0

Спасибо за вашу помощь. Тем не менее, я все еще ничего не получаю. У меня нет никакой ошибки, и ничего не происходит на facebook. –

+0

Почему вы удалили .to_json? –

+0

Кодирование формы должно обрабатываться 'Net :: HTTP' внутри. –

Смежные вопросы