如何解决在 twilio 调用结束时发出 API 请求
我正在寻找一种方式来表达“谢谢”,并在 Twilio 中的函数执行结束时进行 API 调用。
像这样:
responSEObject = {
"actions": [
{
"say": "Thank you!"
},{
"redirect": {
"uri": "API_LINK","method": "POST"
}
}
]
}
遗憾的是,如果您有重定向,twilio 会忽略所有其他消息。我试图通过首先重定向到 TwiML 来解决这个问题:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say>Thank you!</Say>
<Redirect method="POST">API_LINK</Redirect>
</Response>
但以上也不起作用 - 在“谢谢!”之后显示应用程序错误在末尾。此外,我将查询参数与 API 调用一起传递:https://example.link?a=value&b=value。不确定,如何使用 TwiML 传递它。
这个 API 请求应该向微软团队频道发送消息。
解决方法
这里是 Twilio 开发者布道者。
首先,您似乎在谈论 Autopilot 对话的结束,而不是功能执行的结束。如果是这种情况,您将收到错误,因为您混合了 Autopilot Actions 和 TwiML。当您与 Autopilot 助手交互时,您应该只使用 Actions JSON 来响应它,而不是使用 TwiML。
此外,Autopilot 将期望对它发出的请求的所有响应(包括通过重定向)以 Actions JSON 进行响应。因此,不建议使用重定向操作发出 API 请求。
相反,我建议您使用 Twilio Function(或您自己的后端)从 JavaScript 发出 API 请求并使用“say”操作进行响应。
Twilio 函数可能如下所示:
exports.handler = function (context,event,callback) {
// make request to Teams API
// I'm not sure the API method you are using,but use an http client like got,superagent or node-fetch,or a dedicated API client if there is one available
// create your actions
const actions = {
actions: [
{
"say": "Thank you!"
}
]
};
// return the actions JSON
callback(null,actions);
});
或者,您可以设置为 receive an Autopilot webhook when a dialogue ends。通过这种方式,您可以仅通过“说”操作来响应 Autopilot,这将导致对话结束并触发 webhook。然后在您的 webhook 处理程序中,您可以向 Teams 发出 API 请求。
让我知道这是否有帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。