首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我在Wit.ai上设置的快速回复在部署后不能在facebook messenger上工作?

为什么我在Wit.ai上设置的快速回复在部署后不能在facebook messenger上工作?
EN

Stack Overflow用户
提问于 2016-11-15 19:20:14
回答 1查看 206关注 0票数 0

我正在使用Wit.ai在facebook messenger上创建一个聊天机器人。但是,如果我为某个用户输入设置了快速回复,在部署机器人并输入所述输入之后,我只能看到快速回复按钮应该跟随的文本。

EN

回答 1

Stack Overflow用户

发布于 2016-11-16 23:45:13

我假设您正在使用Node.js SDK中的信使示例。

此代码不支持快速回复。首先,您可以使用我的代码在sendTextMessage函数中实现所需的功能:

代码语言:javascript
复制
const sendMessage = (id, message) => {
  const body = JSON.stringify({
    recipient: { id },
    message: message,
  });
  const qs = 'access_token=' + encodeURIComponent(FB_PAGE_TOKEN);
  return fetch('https://graph.facebook.com/me/messages?' + qs, {
    method: 'POST',
    headers: {'Content-Type': 'application/json'},
    body,
  })
  .then(rsp => rsp.json())
  .then(json => {
    if (json.error && json.error.message) {
      throw new Error(json.error.message);
    }
    return json;
  });
};

const sendTextMessage = (id, text, quickreplies) => {
  if(!quickreplies) return sendMessage(id, {text});

  if(quickreplies.length > 10) {
    throw new Error("Quickreplies are limited to 10");
  }

  let body = {text, quick_replies: []};
  quickreplies.forEach(qr => {
    body.quick_replies.push({
      content_type: "text",
      title: qr,
      payload: 'PAYLOAD' //Not necessary used but mandatory
    });
  });
  return sendMessage(id, body);
};

其次,您必须考虑“发送”操作中的快速回复。下面是一个非常简单的“发送操作”示例:

代码语言:javascript
复制
const actions = {
  send({sessionId}, {text, quickreplies}) {
    const recipientId = sessions[sessionId].fbid;
    return sendTextMessage(recipientId, text, quickreplies);
  }
}

编辑:另外,请注意信使快速回复限制为20个字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40608549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档