2017-06-30 2 views
0

J'ai une situation où une conversation va d'abord avoir lieu via une interface web que j'ai construit en .NET. Cela appelle API.AI chatbot et renvoie la question suivante pour que l'utilisateur réponde. Nous enregistrons toutes les réponses dans une base de données SQL Server et chaque conversation dans laquelle ces questions sont exécutées est enregistrée dans la base de données avec un ID de transaction unique afin que nous puissions y revenir plus tard. À tout moment, l'utilisateur peut continuer sa conversation dans Facebook Messenger. Nous ne copierons pas la conversation précédente vers Messenger, mais le reste de la conversation sera dans Messenger, qui nous envoie via Webhook, pour être transféré sur API.AI et sauvegardé dans notre base de données.Facebook Webhooks et interface personnalisée

J'ai lu la documentation de Facebook, mais je ne vois aucun moyen de transmettre mon identifiant de conversation entre Facebook et ma base de données.

Est-il possible de spécifier des métadonnées personnalisées via Facebook JSON pour l'API Webhooks, gardant ainsi le lien entre l'ID généré de notre côté et un chat en cours dans Messenger?

J'espérais pouvoir peut-être recevoir quelque chose comme ci-dessous JSON de Facebook (notez le champ personnalisé « IDEchange ».

{ 
    "object":"page", 
    "entry":[ 
     { 
      "id":"PAGE_ID", 
      "time":1458692752478, 
      "ConversationID": "89032478923423", 
      "messaging":[ 
       { 
        "sender":{ 
        "id":"USER_ID" 
       }, 
       "recipient":{ 
        "id":"PAGE_ID" 
       }, 
      } 
     ] 
    } 
] 

}

Répondre

1

Jetez un oeil sur le terrain metadata et le echo callback.

Lorsque vous envoyez un message à votre utilisateur, vous pouvez remplir le champ metadata dans le champ message avec des métadonnées personnalisées. Lorsque votre nous bhook est abonné à message-echo il recevra un message contenant les métadonnées.