在 twilio 的通话结束时发出 API 请求
Make an API request on call end in twilio
我正在寻找一种表达 'Thank you' 并在 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>
但是上面的也不起作用 - 它在最后的 'Thank you!' 之后说应用程序错误。此外,我正在传递查询参数以及 API 调用:https://example.link?a=value&b=value。不确定,如何使用 TwiML 传递它。
此 API 请求应该向 Microsoft 团队频道发送消息。
这里是 Twilio 开发人员布道者。
首先,您似乎在谈论自动驾驶仪对话的结束,而不是功能执行的结束。如果是这种情况,您将收到错误,因为您正在混合使用 Autopilot Actions 和 TwiML。当您与 Autopilot 助手交互时,您应该只使用 Actions JSON 响应它,而不是使用 TwiML。
此外,Autopilot 将期望对其发出的请求的所有响应(包括通过重定向)以操作 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。通过这种方式,您可以仅通过“say”操作来响应 Autopilot,这将导致对话结束并触发 webhook。然后在您的 webhook 处理程序中,您可以向 Teams 发出 API 请求。
如果有帮助请告诉我。
我正在寻找一种表达 'Thank you' 并在 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>
但是上面的也不起作用 - 它在最后的 'Thank you!' 之后说应用程序错误。此外,我正在传递查询参数以及 API 调用:https://example.link?a=value&b=value。不确定,如何使用 TwiML 传递它。
此 API 请求应该向 Microsoft 团队频道发送消息。
这里是 Twilio 开发人员布道者。
首先,您似乎在谈论自动驾驶仪对话的结束,而不是功能执行的结束。如果是这种情况,您将收到错误,因为您正在混合使用 Autopilot Actions 和 TwiML。当您与 Autopilot 助手交互时,您应该只使用 Actions JSON 响应它,而不是使用 TwiML。
此外,Autopilot 将期望对其发出的请求的所有响应(包括通过重定向)以操作 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。通过这种方式,您可以仅通过“say”操作来响应 Autopilot,这将导致对话结束并触发 webhook。然后在您的 webhook 处理程序中,您可以向 Teams 发出 API 请求。
如果有帮助请告诉我。