1. 程式人生 > >騰訊雲IM使用總結

騰訊雲IM使用總結

騰訊帝國最重要的產品QQ和微信都是IM為基礎,相信騰訊雲IM也能有很好的體驗,我們在專案上準備使用騰訊雲通訊。

我們專案的基本需求是App中使用IM,實現基本的聊天功能,有一些我們的值班人員通過IM給App的使用者提供實時的業務諮詢,同時也提供使用者和使用者之間的聊天。
由於專案App第一期時間緊,先考慮基於H5或小程式,二期再考慮原生實現Android和iOS版本,AppWorker會封裝這個元件。
基本流程就是App端或小程式有自己的登陸系統,有二種基本角色:使用者(問題諮詢者)和服務人員(問題回答者)。使用者登陸找到服務人員,然後用do_WebView元件載入聊天網頁,實現聊天功能。後期還要逐漸增加其它功能:

  • 自動翻譯:使用者A輸入中文,使用者B或服務人員獲取到的是翻譯完的英語。
  • 自動回覆:後面對接騰訊AI助手,相當於使用者可以和AI對話
  • 自動分配人工答覆:如果AI無法回答,根據值班時間,自動切換到某個值班人員。

1.準備工作

  • 建立雲通訊的應用,注意SDKAPPID這個值後面會一直要用到。

    image.png

     

  • 點選應用配置,有一些配置必須提前設定好。設定介面如下:

    image.png


    基本配置下比較重要的賬號體系下的下載私鑰和公鑰,下載的zip包含公鑰和私鑰2個檔案:private_key,public_key ,這2個檔案請儲存好。另外還有一個賬號管理員需要記錄下來,後面需要用它作為服務端API發起的使用者Id,這裡如截圖,值為myadmin.

    image.png


    功能配置裡比較重要的是設定一些自定義欄位。
    Crash是騰訊的bugly,沒有嘗試。
    群組管理:可以手動建立群組。
    回撥配置: 這個設定回撥url和那些需要回調,這個很重要,後面也需要用到,後面再解釋。
    輔助工具:這個可以不用,可以下載TLS可執行命令來執行。

     

2. 生成sig值

這個步驟是所有操作的基礎,我們這裡選擇的是 獨立模式:使用者帳號資訊由開發者儲存,使用者身份驗證(比如註冊與驗密)也由開發者負責。

image.png


我們自己的應用後臺服務需要提供基本的簽名功能,傳入 引數 sdkappid 、私鑰、identifier,返回一個usersig值,其中

 

  • sdkappid:就是上面準備工作裡應用id
  • 私鑰就是上面準備工作下載的金鑰檔案中的private_key檔案內容
  • identifier就是我們業務系統的使用者唯一標識
    TLS後臺API使用手冊提供了Java和其它語言的庫我們可以整合到我們的業務服務上。我們平常除錯可以用它提供的工具來除錯

    image.png


    以後所有的對騰訊雲的http請求都必須包含identifier和usersig,騰訊雲會驗證合法性。

3. 使用者登陸

這個登陸指對騰訊雲IM的login,因為我們用的是獨立模式,則這個動作的前提是這個使用者已經成功登陸了業務系統。
這裡有二種方式登陸:

  • 第一種是請求諮詢的使用者在App端通過WebSDK的login函式
webim.login(loginInfo, listeners, options,cbOk,cbErr)

注意:引數appIDAt3rd和sdkAppID引數值一樣。

  • 第二種是通過單個或批量匯入,比如回答諮詢的服務者從沒有登陸過,但是使用者想諮詢服務者,則會遇到問題。我們可以考慮當服務者註冊的時候就單個匯入到騰訊內部建立一個內部ID,使沒有登入騰訊雲的應用自有帳號能夠使用騰訊雲服務。參考匯入文件

4. 傳送接受訊息

這裡指客戶端傳送和接受訊息。WebSDK是基於H5和小程式的IM的共有js庫,它們的差別就是用H5繪製聊天介面還是用小程式繪製,真正的通訊機制完全一樣。
不過和Android,iOS的原生比較,WebSDK不支援很多功能,比如不支援短視訊,不支援語音傳送(支援解析),不支援地理位置(支援解析)。

5. 騰訊雲後端服務和回撥服務

騰訊雲提供了後端雲服務REST API來實現很多功能,很多情況需要我們的業務服務端呼叫這些API來處理IM的一些操作。
這裡要注意的一個細節是所有的後端REST API都是以管理員身份來獲取UserSig和其它操作,在我們的前期準備裡管理員是myadmin。
在應用配置裡如果配置了我們的業務服務回撥URL,在IM聊天中就會自動觸發我們的業務服務,通過這個回撥和騰訊雲後端服務,我們能完成我們的後期幾個需求,以下是幾個基本流程圖:

image.png


這個流程中,所有訊息都先經過我們的業務系統來決定怎麼回覆,誰回覆,包括如果需要翻譯也可以加到流程中。
這裡提一下,後端服務騰訊提供了一個Web工具能很方便的除錯雲API。