J'essaie de faire une demande directe POST à Facebook, à partir de mon modèle (user.rb), pour envoyer un message simple à cet utilisateur dans Messenger. Mais je reçois cette erreur:POST à Facebook Messenger avec Ruby Net :: Erreur HTTP 100
{"error":{"message":"(#100) param recipient must be non-empty.","type":"OAuthException","code":100,"fbtrace_id":"F07BNxzgciW"}}
Voici ma méthode:
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
On dirait que les données ne sont pas dans le bon format, de sorte que l'ID utilisateur n'est pas beeing reconnu.
décommenter les ligne de #data je reçois cette erreur, parce que les données est une chaîne, et non un Hash:
NoMethodError: undefined method `map' for #<String:0x000000034bd248>
Ceci est l'exemple de demande de Facebook Docs que je suis en train de reproduire:
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"
Génial !! travaillé parfaitement, vous avez sauvé ma journée. Merci! – mknarciso
Micael, pouvez-vous convertir ce code en PHP avec demande curl ou avec l'objet Facebook? –
@YasirIjaz vient de faire –