无法在Facebook Messenger平台(Node.js)上发送按钮模板作为响应



我正在使用node.js在Facebook Messenger平台上开发聊天机器人。这是我用于设置文本响应的功能代码:

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

而不是form您应该使用json

看一下我在小故障上写的代码

应该是:

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

最新更新