我想为来自多个平台的消息创建一个统一的“收件箱”,其中一些受到所有主要聊天机器人服务的广泛支持,例如 Facebook Messenger,另一些则比较晦涩,例如 WhatsApp,但其他则完全不受支持(例如 Steam网络聊天)。
我遇到过几种解决方案,它们对最流行的即时通讯工具进行了某种“一键式”集成,但我找不到一个可以让您集成第三方即时通讯工具(最好有一个可读取的 API)的解决方案。/至少发送消息)到类似聊天机器人的服务中。有这样的事吗?
PS:我并不真正关心花哨的 AI 对话支持,我只想将所有消息接收到一个 webhook 中,然后我可以对其进行操作,并且还能够回复它们。
最佳答案
API.ai 没有“集成池”架构,它将每个平台视为单独的集成或对话。鉴于此,您必须构建自己的服务器端消息池解决方案,将其插入所有第 3 方 API,然后在传递到 API.ai 之前对所有流中的消息进行池/队列,并在您的服务器上使用一些 messageID/跟踪系统服务器端解决方案用于记住要使用 API.ai 响应来响应哪个第 3 方 API。像这样的聚合/池函数应该可以工作:
var queue = [];
var queueProcessing = false;
function queueRequest(request) {
queue.push(request);
if (queueProcessing) {
return;
}
queueProcessing = true;
processQueue();
}
function processQueue() {
if (queue.length == 0) {
queueProcessing = false;
return;
}
var currentRequest = queue.shift();
//Send to API.ai
request(currentRequest, function(error, response, body) {
if (error || response.body.error) {
console.log("Error sending messages!");
}
processQueue();
});
}
关于api - 将聊天机器人集成到任何第三方消息 API 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43438840/