【问题标题】:Twilio Autopilot's custom channel Memory payloadTwilio Autopilot 的自定义通道内存有效负载
【发布时间】:2022-01-03 02:29:54
【问题描述】:

我正在创建一个网络聊天,我需要使用 Twilio Autopilot 集成一个助手,我使用 Autopilot 的自定义渠道如下:

  • 我向https://channels.autopilot.twilio.com/v2/{AccountSid}/{AssistantSid}/custom/webchat发送了一个POST请求
  • 我在请求数据中填写这些字段(Language=en-US, UserId=user123, Text=Something)
  • 我在 Assistant URL 中添加了一个内存参数

我的后端代码:

    // Assistant URL Memory parameter
    const context = JSON.stringify({
        accountHolder: "foo bar",
        balance: 123
    }, null, "");

    // Request params
    const urlencoded = new URLSearchParams();
    urlencoded.append("Language", "en-US");
    urlencoded.append("UserId", message.Author);
    urlencoded.append("Text", message.Body);

    const requestConfig: AxiosRequestConfig = {
        headers: {
            "content-type": "application/x-www-form-urlencoded",
            "accept": "application/json",
            "authorization" :  "Basic " + Buffer.from(accountSid + ":" + authToken).toString("base64")
        },
        method: "POST",
        url: `https://channels.autopilot.twilio.com/v2/${accountSid}/${assistantSid}/custom/webchat?Memory=${context}`,
        data: urlencoded
    };

    // Trigger the bot
    const twilioResponse = this.httpService.request(requestConfig);

    const result = await lastValueFrom(twilioResponse.pipe(map((response) => response.data)));

Twilio 函数:

exports.handler = async function(context, event, callback) {
  console.log(event.Memory);
  const userData = JSON.parse(event.Memory); // Memory does not contains my payload !

  return callback(null, {
    "actions": [
      {
        "say": `Hello ${userData.accountHolder}, your balance is ${userData.balance}`
      },
      {
        "listen": true
      }
    ]
  });
};

我的问题是,内存参数没有发送到函数

【问题讨论】:

    标签: javascript node.js typescript twilio twilio-autopilot


    【解决方案1】:

    这里是 Twilio 开发者宣传员。

    我原以为您可能希望在将 JSON 内存添加到 URL 时对其进行 URL 编码。试试这个:

        const context = encodeURIComponent(
          JSON.stringify({
            accountHolder: "foo bar",
            balance: 123
          }, null, "")
        );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-17
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      • 2017-01-04
      • 2017-04-04
      • 2019-01-23
      • 2020-04-11
      相关资源
      最近更新 更多