Table of Contents generated with DocToc

twilio-chat-tutorial

簡介

提供 API 服務,企業文化: 一旦開始,就要不斷學習和改善,做好剩下的工作

Programmable Chat

運用跨平台 SDK(iOS, Android, Web, REST API) 賦予多人聊天功能、權限控管、Push notifications,Client side, Server side API 提供開發者運用,SDK Changelog

帳號資訊

資料類型

  • Service
  • Users
  • Roles
  • Channels: private or public
  • Members
  • Messages

Javascript 設定

npm install --save twilio-chat
npm install --save twilio
npm install --save twilio-common

Java 設定

    <dependency>
        <groupId>com.twilio.sdk</groupId>
        <artifactId>twilio</artifactId>
        <version>7.37.3</version>
    </dependency>

Token

  1. 建立 Token, identity
  2. 初始化 Client
  3. TTL 預設 3600 秒(1 小時)
  4. Token 小於三分鐘內將過期時會有 tokenAboutToExpire 通知,取新的 token 再更新即可
  5. Token 過期 tokenExpired 就只有 Error

頻道及訊息

物件

  • Channel Descriptors: 查看資訊用, Channel SID, 友善名稱, 獨特名稱, XX日期...等等
  • Channels: 實際互動用, 建立小圈圈, 查看小圈圈, 加入小圈圈, 聊天說笑, 邀請別人加入, 監聽小圈圈事件, 對方有在理我嗎...等等
  • Event 請參閱 SDK

多媒體支援

  • 圖片、影片 等 MIME type 皆支援
  • User Role 需要有 sendMediaMessage, sendMessage 的權限
  • 內容不可變,其他屬性才可以
  • 檔案大小上限: 150MB
  • Media 暫時 URL 僅存在 300 秒,可重新取得

分頁

  • Object: Channels, Member list, Messages
  • 判斷是否還有資料: hasPrevPage, hasNextPage

權限控管

  • 服務層: User 可以看到哪些小圈圈、加入、建立
  • Channel 層: User 可以在小圈圈做哪些事

訊息輸入提示

  • 需由 Client 端發送,而非 SDK 內建幫你做好好
  • 為了優化網路, chat client 僅會每 5 秒發送

訊息讀取進度

狀態在多個 device 間是同步的,基於 lastConsumedMessageIndex,但他有可能是 0null,讀取狀態每 10 秒才會發送,可透過 REST API 設定 ConsumptionReportInterval

  • 功能
    • 有沒有讀?
    • 讀到哪了?
  • 設定方式
    • 全部已讀取
    • 全部未讀取
    • 讀到某一則 by message index

推播通知

整合 APN (iOS), GCM/FCM (Android and browsers),可指定哪一類通知要發送,以及發送訊息的樣板,樣板皆有預設值,可自行 override。通知的 payload 最多 110 字元,超過的會截斷

Webhook Events

可用來監控或互動

Twilio Console

儀表板

  • Account SID
  • Auth token
  • Services

dashboard

用量

  • users
  • messages

usage

角色/權限

可自行新增

roles

使用者

users

推播

可客製化推播訊息

push

聊天室

channels

REST API

  • 必備資料
    • Account SID
    • Auth token
    • Service SID
  • 搭配 curl 使用就是 Debug 好工具
  • Application 使用時記得設定到環境變數

參考資料