2017-06-05 4 views
0

Je développe un chatbot sur la plate-forme Facebook Messenger en utilisant Node.js. Voici mon code de fonctionnement pour configurer une réponse textuelle:Impossible d'envoyer le modèle de bouton en réponse sur Facebook Messenger Platform (Node.js)

const fbReq = request.defaults({ 
    uri: 'https://graph.facebook.com/me/messages', 
    method: 'POST', 
    json: true, 
    qs: { 
    access_token: Config.FB_PAGE_TOKEN 
    }, 
    headers: { 
    'Content-Type': 'application/json' 
    }, 
}); 


const fbMessage = (recipientId, msg, cb) => { 
    const opts = { 
    form: { 
     recipient: { 
     id: recipientId, 
     }, 
     message: { 
     text: msg, 
     }, 
    }, 
    }; 

    fbReq(opts, (err, resp, data) => { 
    if (cb) { 
     cb(err || data.error && data.error.message, data); 
    } 
    }); 
}; 

Je peux également configurer une réponse d'image de cette façon. Toutefois, lorsque j'essaie de faire de la réponse un modèle de bouton (https://developers.facebook.com/docs/messenger-platform/send-api-reference/button-template), aucune réponse n'est reçue. Aucune erreur n'est levée non plus.

const fbInfo = (recipientId, cb) => { 
    const opts = { 
    form: { 
     recipient: { 
     id: recipientId, 
     }, 
     message: { 
     attachment:{ 
      type:"template", 
      text:"Check out our website", 
      payload:{ 
      template_type:"button", 
      buttons:[ 
       { 
       type:"web_url", 
       url:"https://some.website.com", 
       title:"Website" 
       } 
      ] 
      } 
     } 
     } 
    } 
    }; 

    fbReq(opts, (err, resp, data) => { 
    if (cb) { 
     cb(err || data.error && data.error.message, data); 
    } 
    }); 
}; 

Répondre

0

Au lieu de form vous devez utiliser json.

un coup d'oeil sur le code que je l'ai écrit sur glitch

devrait être quelque chose comme:

request({ 
    uri: 'https://graph.facebook.com/v2.6/me/messages', 
    qs: { access_token: <TOKEN> }, 
    method: 'POST', 
    json: messageData}, ...) 
+0

Merci! Ça a marché. –