【发布时间】: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