将chatbot集成到任何第三方消息传递API中

问题描述:

我想为来自多个平台的消息制作一个统一的“收件箱”,其中一些广泛支持所有主要的聊天机器服务,如Facebook Messenger,其他人则比较像WhatsApp ,但其他人则普通不受支持(如Steam Web Chat)。将chatbot集成到任何第三方消息传递API中

我遇到过几种解决方案,它们为最受欢迎的使用者提供某种“一键式”集成,但是我找不到能够让您集成第三方使者(理想情况下具有API至少读取/发送消息)转换成类似chatbot的服务。那里有这样的事吗? PS:我真的不关心花哨的AI会话支持,我只想接收所有的信息,比如说一个webhook,然后我可以采取行动,并且能够回复他们。

+0

不确定你在找什么,它是一个类似api.ai或wit.ai的服务,它聚合了更多的消息客户端?你需要“一键式”整合还是可以做一些休息API消费? –

+0

我想我在这里重复自己,但让我们尝试不同的词语:我希望能够使用通过不同来源(Facebook Messenger,WhatsApp等)来的消息并对它们执行操作(回复,触发其他操作),而无需订阅多个“聊天机器服务”并重写相同的代码。但最重要的是,我需要通过提供相应的API/REST端点来集成其他消息服务。如果我可以自己连接它,一键式集成将会很好,但不是必需的。我开始认为这个服务实际上是空缺的。 – lima

+0

所以基本上像api.ai,但允许我指定某些API端点为消息池(或webhooks接收它们,或其他),让他们进入他们的系统并回复他们。 – lima

我会做的是有一个Node.js后端。 将每个消息集成指向它,然后将其指向API.AI.

所以流量会是这样:

enter image description here

+0

欣赏建议,但我试图避免自己编写整个集成,理想情况下api.ai可以提供某种插件功能,以便开发人员不必重复一次又一次地处理相同的消息传递平台,并且可以发现已经被社区整合的消息。但我知道这将是最适合他们的功能建议。 – lima

+0

我同意你的看法,但是从我自己的经验来看,api ai中的一次单击集成很浅,并且限制你退出一点。如果您想在进行api ai之前做任何操作,那么您将需要任何方式的后端 –

API.ai没有一个“集成池”体系结构,它把每个平台作为一个独立的整合或交谈。鉴于此,您必须构建自己的服务器端消息池解决方案,将其插入所有第三方API,然后在传递到API.ai之前将所有流中的消息进行池/队列化,并在您的某个messageID /跟踪系统上服务器端解决方案来记住哪些第三方API用API.ai响应来响应。像这样的事情作为一个聚合/池功能应该工作:

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(); 
 
    }); 
 
}

有一种名为Message.io这不,我相信你想要的东西。他们支持最广泛的平台。

Message.io位于您的机器人和消息传递平台之间,您以Message.io的标准方式接收消息,并在向用户发送消息时将消息转换为您正在响应的平台的相应格式至。