0
我試圖從我的模型(user.rb)向Facebook發出直接POST請求,向Messenger中的此用戶發送簡單消息。但是,我得到這個錯誤:使用Ruby Net發佈到Facebook Messenger :: HTTP錯誤100
{"error":{"message":"(#100) param recipient must be non-empty.","type":"OAuthException","code":100,"fbtrace_id":"F07BNxzgciW"}}
這裏是我的方法:
def send_message(msg)
url = "https://graph.facebook.com/v2.6/me/messages?access_token="+ENV['PAGE_ACCESS_TOKEN']
data = {
'recipient': {
'id': self.facebook_id
},
'message': {
'text': msg
}
}
#data = JSON.pretty_generate(data)
puts data
uri = URI(url)
res = Net::HTTP.post_form(uri, data)
puts res.body
end
好像數據是不正確的格式,所以用戶ID不beeing認可。
取消註釋#DATA線我得到這個錯誤,因爲數據是一個字符串,而不是一個哈希:
NoMethodError: undefined method `map' for #<String:0x000000034bd248>
這是來自Facebook的文檔,我試圖重現請求示例:
curl -X POST -H "Content-Type: application/json" -d '{
"recipient": {
"id": "USER_ID"
},
"message": {
"text": "hello, world!"
}
}' "https://graph.facebook.com/v2.6/me/messages?access_token=PAGE_ACCESS_TOKEN"
太棒了!完美工作,你救了我的一天。謝謝! – mknarciso
Micael,你可以在PHP中使用curl請求還是使用Facebook對象來轉換此代碼? –
@YasirIjaz剛剛做到了 –