2018年3月2日 星期五

關於臉書聊天機器人的TAG與MESSAGING_TYPE

好久好久沒有寫部落格,總之當作自己的筆記紀錄一下這個麻煩又複雜的東西。

台灣主要的Chatbot平台之爭,大概就是LINE跟臉書了。兩邊都以很高的頻率在更新相關功能與開發SDK,這邊針對臉書最近更新的TAG與MESSAGING_TYPE做一些說明與紀錄。

真心話其實就是,他牛的改來改去搞得太複雜了,為了下次忘記的時候不用再找半天,決定把這次看完的結果做個紀錄。



進入正題,臉書的Chatbot到目前為止都沒有收費,算是頗佛心的。只是相對的,新建立的Chatbot只能讓開發者或設定好的測試員使用,所有功能的公開都需要經過權限申請與審核。過去主要的權限審核分為一般發送訂閱訊息這兩種等級,使用者與粉絲團最後一次訊息往來的24小時以內,Chatbot要發訊息給使用者都只需要一般發送權限,但是一但超過這個24小時期間,Chatbot就需要有訂閱訊息權限才能主動推播訊息給使用者。

可想而知,訂閱訊息權限比一般發送權限難申請很多,至少我申請過超過5組的一般發送權限,也幾乎都通過了,但卻從來沒有申請成功訂閱訊息權限過。

不過,這些現在變得更複雜了。

先講一下結論,現在的臉書機制允許不需要申請訂閱訊息的權限,Chatbot就能在一定的限制下發送訊息給超過24小時沒互動的使用者。這應該對很多開發者來說是個很令人高興的消息,但一般發送權限還是要記得申請,否則還是一樣只有開發者跟測試員才能收到訊息。

如果現在就讓Chatbot直接向已經超過24小時沒互動的使用者傳送訊息,你會發現是可以成功送出訊息的!但是別高興得太早,因為同樣的動作你可能無法進行第二次了。現在的臉書政策允許Chatbot對超過24無互動的使用者發送訊息,但僅限一則。這個規則被臉書稱為24+1 policy」。

那要怎麼樣才能送出突破24+1 policy限制的訊息呢?這就關係到臉書Chatbot新增的TAGMESSAGING_TYPE這兩個新東西了。

MESSAGING_TYPE顧名思義就是訊息的種類,跟原本在訊息JSON格式中的type屬性不同,MESSAGING_TYPE比較像是訊息"發送目的"的類別。從2018年5月7日起,Chatbot在送出任何訊息時,都必須增加MESSAGING_TYPE屬性,否則不管是一般訊息還是訂閱訊息通通都送不出去。

MESSAGING_TYPE現在分為三種(2018/03/02):RESPONSE、UPDATE、MESSAGE_TAG,官方提供的說明連結在這邊

如果Chatbot送出的訊息是在回應使用者送出的某一則訊息,那麼就算是RESPONS,例如回應使用者的餐廳訂位需求訊息;如果Chatbot送出的訊息並非針對使用者的任一則訊息或目的,那麼就算是UPDATE。

然而在使用上,RESPONSE跟UPDATE目前沒有差異,也都無法突破24+1 policy,也就是說等同於以往的一般發送訊息。不過看起來臉書的政策未來很有可能對這兩種訊息給予不同的規範(例如把RESPONSE類訊息的可回應時間縮到更短),所以最好開發時還是注意分類一下,不要偷懶就全部都標RESPONSE或UPDATE。

MESSAGE_TAG比較特別,也是唯一能夠不在24+1 policy規定內的訊息類別,但這類的訊息必須增加TAG屬性,用來說明這則訊息要傳達的目的類型,且不同的TAG有著不同的標註限制,不是想用就可以亂用的。這也就是一開始點出的「限制」。

TAG從可標註的訊息類別來說,大概分為三類:

  • NON_PROMOTIONAL_SUBSCRIPTION
    • 粉絲頁有申請並通過訂閱權限審核時(訂閱訊息的審核從APP移到粉絲頁→設定→Messenger Platform了),無論什麼類型的訊息都可以掛上這個TAG,然後開開心心的突破24+1 policy,根本無敵星。
  • ISSUE_RESOLUTION
    • 這個TAG只能接受Generic template類型以及純文字text類型的訊息,這是沒有申請訂閱權限能突破24+1 policy的最大寬容度了。
  • 以上兩者之外其他的TAG
    • 這些TAG都只能用在Generic template類型的訊息。臉書提供的TAG從「遊戲資訊更新」、「交通預約更新」到「帳號更新」等五花八門,加上屆由開發者所提供的建議會一直更新追加,需要時可以直接從列表中去尋找符合的TAG。

結論!!!從使用限制上來說可以畫成這樣的圖!!!


所以有通過訂閱權限審核的人生勝利組,只要把訊息都改成MESSAGE_TAG的NON_PROMOTIONAL_SUBSCRIPTION就可以暢行無阻了。至於我們這些申請不到權限的小魯們呢......,加油吧!

沒有留言 :

張貼留言