api - 将聊天机器人集成到任何第三方消息 API 中

标签 api chat messaging chatbot messenger

我想为来自多个平台的消息创建一个统一的“收件箱”,其中一些受到所有主要聊天机器人服务的广泛支持,例如 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/

相关文章:

php - YouTube视频上传API问题

javascript - Angular 数组不更新 View

Java Chat系统协议(protocol)设计,如何判断消息类型?

domain-driven-design - 分布式域驱动设计资源

python - 限制传入消息以避免重复的最佳方法

ruby-on-rails - Rabl、Jbuilder 还是手动 json 构建 API?

javascript - 如何用新图像替换图像,而不是在 API 提交后添加到页面?

ios - Linkedin API 401 [未经授权]。 (带有OAuthStarterKit的iOS)错误

javascript - 在Django中实现Chat的最佳实践(存储在线用户)

java - 在 Redhat MRG/Apache QPID 中创建仅浏览队列