2017-06-05 136 views
0

我正在使用Node.js在Facebook Messenger平臺上開發chatbot。這是我設置文本響應的功能代碼:無法發送按鈕模板作爲Facebook Messenger平臺(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); 
    } 
    }); 
}; 

我也可以通過這種方式設置圖像響應。但是,當我嘗試使響應成爲按鈕模板(https://developers.facebook.com/docs/messenger-platform/send-api-reference/button-template)時,未收到響應。沒有錯誤被拋出。

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); 
    } 
    }); 
}; 

回答

0

相反的form你應該使用json

看看代碼,我已經寫上glitch

應該是這樣的:

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

謝謝!有效。 –

相關問題