2017-04-16 88 views
2

我想爲來自多個平臺的消息製作一個統一的「收件箱」,其中一些廣泛支持所有主要的聊天機器服務,如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

回答

1

我會做的是有一個Node.js後端。 將每個消息集成指向它,然後將其指向API.AI.

所以流量會是這樣:

enter image description here

+0

欣賞建議,但我試圖避免自己編寫整個集成,理想情況下api.ai可以提供某種插件功能,以便開發人員不必重複一次又一次地處理相同的消息傳遞平臺,並且可以發現已經被社區整合的消息。但我知道這將是最適合他們的功能建議。 – lima

+0

我同意你的看法,但是從我自己的經驗來看,api ai中的一次單擊集成很淺,並且限制你退出一點。如果您想在進行api ai之前做任何操作,那麼您將需要任何方式的後端 –

2

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

0

有一種名爲Message.io這不,我相信你想要的東西。他們支持最廣泛的平臺。

Message.io位於您的機器人和消息傳遞平臺之間,您以Message.io的標準方式接收消息,並在向用戶發送消息時將消息轉換爲您正在響應的平臺的相應格式至。