天天看點

如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

1、前言

近期積木式開發平台HaaS雲服務上線了:

https://haas.iot.aliyun.com/micro-server/my-instance

首發支援微服務的積木式開發。下面來介紹下,如何使用HaaS雲服務借助釘釘來搭建一個簡單的聊天機器人程式

如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

2、建立工程

登陸

後,開通服務,即可進入微服務工作台。

如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援
如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

從這邊導航欄,我的執行個體開始,直接申請執行個體

如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

之後點選執行個體後面的“打開”鍵,即可進入積木式開發界面

如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援
如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

界面如上圖所示,最中央占地最大的是畫布,也是工作台。

畫布左側的一組組小方塊是一個個小的功能節點,簡單來說:開發時,就是把左邊的方塊一個個拖到畫布上,再串聯起來,即可完成功能邏輯的開發。

畫布上方的TAB是小的功能組合,目前已經有三個預設的TAB。

開發聊天機器人,用不到預設的這三個工程,輕按兩下TAB名字即可彈出如下界面,可以直接删除或禁用

如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

最後還有右上角的“部署”按鈕和下面的蟲子圖示代表的調試欄,是後面會經常使用的,記住這兩個按鍵即可。下面正式進入積木式開發

3、開發過程

3.1、建立入口

  • 點選TAB欄的空白處,或TAB欄右邊的+号,即可建立一個TAB,然後分别拖一個http in 和http out到新TAB的畫布上
如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援
  • 輕按兩下http in節點,改變請求方式為POST,并且添加一個url路徑,這裡我們填"/post"
如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援
如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

此時,其實已經獲得了一個可以接受釘釘機器人消息的http入口,完整的url就是目前頁面的域名+http in節點的路徑,也就是http://463.****.alicontainer.com/post

3.2、配置釘釘機器人

這時,可以去配置釘釘機器人了

  • 在釘釘上建立一個群組,并進入群設定->智能群助手->添加機器人->自定義
如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援
如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援
  • 給機器人取個名字,并配置關鍵詞(關鍵詞後面會用到),勾選同意後就可以完成了
如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援
  • 在下一個界面中,會展現出一個webhook位址,把這個位址拷貝下來,後面有可能會用到。
如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援
  • 打開outgoing,這個post位址,就填寫上面HaaS雲服務生成的位址:http://463.****.com/post
如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

OK,再次回到HaaS雲服務的積木式開發界面

3.3、調試看看釘釘會發來什麼

拖一個debug節點到上面,和http in節點連接配接起來,然後直接點選部署,并且點選調試按鍵,進入調試視窗。

如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

在釘釘上@機器人,看看會輸出什麼

如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援
如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

可以看到,調試視窗已經列印出了@機器人 後面的文字“你好”,除此之外還把完整的http消息内容列印了出來(全都在msg.payload中)可以通過一個“function”節點,通過幾行代碼提取出最需要的文字。

3.4、提取内容

找到“function”節點,拖到http in節點後面,連接配接好,并且輕按兩下,寫這麼幾句js代碼

  1. var content = msg.payload.text.content.trim() //提取内容
  2. node.warn(content) //列印
  3. msg.payload = content //把原始内容覆寫掉
  4. return msg; //傳遞向下一個節點
如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

此時這個function節點的輸出就是在釘釘上輸入的詞語“你好”了.

3.5、調用聊天機器人API

再拖一個function節點到後面,在這個節點裡,會通過代碼調用一個免費的聊天機器人API"青雲客",擷取機器人的輸出,并且通過node.send(msg)傳遞向下一個節點。

  1. const require = global.get('requirejs');
  2. const request = require('request');
  3. function processGETRequest(content) {
  4. var url = 'http://api.qingyunke.com/api.php?key=free&appid=0&msg=';
  5. url = url + encodeURIComponent(content);
  6. var options = {
  7. url: url,
  8. method: 'GET',
  9. encoding: null
  10. };
  11. request(options, function (error, response, body) {
  12. var resContent = ""+body
  13. if (error != null) {
  14. node.warn(error);
  15. }
  16. else {
  17. msg.response=JSON.parse(resContent).content;
  18. node.warn(msg.response);
  19. node.send(msg);
  20. });
  21. processGETRequest(msg.payload)
如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

3.6、回複釘釘

再拖出第三個“function”節點,在這個節點裡,會按釘釘的消息模闆,組裝出響應消息,代碼如下:

  1. msg.payload={
  2. "msgtype": "text",
  3. "text": {
  4. //9527是我的機器人的關鍵詞
  5. "content": "9527: " + msg.response
  6. },
  7. return msg;
如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

最後連接配接上開始時的http out節點,就大功告成了

如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

在釘釘上試一下:

如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

4、後記

有人可能會問,這個看起來也不簡單啊,還需要自己寫這麼多代碼,怎麼算是積木式開發呢?

别急,可以先這麼做:選擇聊天機器人的節點後,點選右上角的菜單欄,将選擇部分更改為子流程。

如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

這樣,這個節點就不再單純的是一個function節點,而是被包裝成了一個“聊天機器人”的積木節點

如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

後續HaaS雲服務會很快開放這種自定義功能節點的共享和下載下傳功能。也就是說:封裝的這些積木節點,可以開放給HaaS雲服務的所有使用者使用,也可以自由使用其他人封裝的節點,做到人人為我,我為人人。

目前公測階段,HaaS雲服務會開放內建開源node-red的豐富積木節點,同時也希望志同道合者針對IoT場景貢獻更多的“積木”節點,一起完善IoT生态,讓背景服務的開發不再複雜。

如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

開發者技術支援

如需更多技術支援,可加入釘釘開發者群,或者關注微信公衆号

如何用HaaS雲服務做一款聊天機器人1、前言2、建立工程3、開發過程4、後記開發者技術支援

更多技術與解決方案介紹,請通路阿裡雲AIoT首頁

https://iot.aliyun.com/

繼續閱讀