1

J'écoute l'événement optin tiré par Facebook Messenger. Les docs disent que je devrais recevoir un objet avec { 'sender': { 'id': 'USER_ID' } } dedans. Cependant, les données que je reçois manquent cette information. Je reçois l'événement optin, et j'obtiens le reste des données, mais il me manque le sender.Existe-t-il des conditions supplémentaires pour obtenir les informations relatives à l'expéditeur lors d'un événement optin sur Facebook?

La réponse je reçois ressemble à ceci:

"messaging"=>[{ 
    "recipient"=>{"id"=>"MY_PAGE_ID"}, 
    "timestamp"=>1503480281655, 
    "optin"=>{"ref"=>"PASS_THROUGH_PARAM", "user_ref"=>"5019"} 
}] 

J'utilise la pierre précieuse facebook-messenger pour gérer les événements de webhook. Cependant, j'ai décidé d'intercepter la demande directement pour vérifier les données que je recevais, ce qui est ce que j'ai utilisé pour générer la réponse ci-dessus. L'objet le joyau me donne ressemble à ceci:

#<Facebook::Messenger::Incoming::Optin:0x007fe2829a4928 
    @messaging={ "recipient"=>{"id"=>"MY_PAGE_ID"}, 
       "timestamp"=>1503480091027, 
       "optin"=>{"ref"=>"PASS_THROUGH_PARAM", "user_ref"=>"58326"} 
       }> 

est ici où je listen à l'événement optin.

Enfin, le gestionnaire de clic pour déclencher l'événement optin est exactement par la documentation de Facebook:

FB.AppEvents.logEvent('MessengerCheckboxUserConfirmation', null, { 
    'app_id':'<%= Figaro.env.facebook_app_id %>', 
    'page_id':'<%= Figaro.env.facebook_page_id %>', 
    'ref':'PASS_THROUGH_PARAM', 
    'user_ref':'<%= @uniq_user_ref %>' 
    }); 

est ici le reste de cette file dans le cas où il est précieux.

Y at-il autre chose que je dois configurer ou transmettre pour dire à Facebook que je veux cette information?

Répondre

1

Est-il possible que vous utilisiez le plugin Checkbox au lieu du plugin Send to Messenger? Sur la documentation Checkbox, ils mentionnent la (Souligné par l'auteur) suivante:

Callback

Après l'événement opt-in, nous publierons un événement webhook à votre serveur si l'état de case a été cochée . Ce rappel a le même format que le rappel opt-in, mais à la place d'un champ expéditeur, il a un objet optin avec un champ user_ref.

+0

Dop! Je vous remercie! Je pensais qu'ils étaient le même événement, et n'avait pas réalisé en utilisant la case à cocher entraînerait des données différentes. –