騰訊云IM使用總結(jié)

騰訊帝國(guó)最重要的產(chǎn)品QQ和微信都是IM為基礎(chǔ),相信騰訊云IM也能有很好的體驗(yàn),我們?cè)陧?xiàng)目上準(zhǔn)備使用騰訊云通信。

我們項(xiàng)目的基本需求是App中使用IM,實(shí)現(xiàn)基本的聊天功能,有一些我們的值班人員通過(guò)IM給App的用戶提供實(shí)時(shí)的業(yè)務(wù)咨詢,同時(shí)也提供用戶和用戶之間的聊天。
由于項(xiàng)目App第一期時(shí)間緊,先考慮基于H5或小程序,二期再考慮原生實(shí)現(xiàn)Android和iOS版本,AppWorker會(huì)封裝這個(gè)組件。
基本流程就是App端或小程序有自己的登陸系統(tǒng),有二種基本角色:用戶(問(wèn)題咨詢者)和服務(wù)人員(問(wèn)題回答者)。用戶登陸找到服務(wù)人員,然后用do_WebView組件加載聊天網(wǎng)頁(yè),實(shí)現(xiàn)聊天功能。后期還要逐漸增加其它功能:

  • 自動(dòng)翻譯:用戶A輸入中文,用戶B或服務(wù)人員獲取到的是翻譯完的英語(yǔ)。
  • 自動(dòng)回復(fù):后面對(duì)接騰訊AI助手,相當(dāng)于用戶可以和AI對(duì)話
  • 自動(dòng)分配人工答復(fù):如果AI無(wú)法回答,根據(jù)值班時(shí)間,自動(dòng)切換到某個(gè)值班人員。

1.準(zhǔn)備工作

  • 創(chuàng)建云通信的應(yīng)用,注意SDKAPPID這個(gè)值后面會(huì)一直要用到。

    image.png

  • 點(diǎn)擊應(yīng)用配置,有一些配置必須提前設(shè)置好。設(shè)置界面如下:

    image.png

    基本配置下比較重要的賬號(hào)體系下的下載私鑰和公鑰,下載的zip包含公鑰和私鑰2個(gè)文件:private_key,public_key ,這2個(gè)文件請(qǐng)保存好。另外還有一個(gè)賬號(hào)管理員需要記錄下來(lái),后面需要用它作為服務(wù)端API發(fā)起的用戶Id,這里如截圖,值為myadmin.
    image.png

    功能配置里比較重要的是設(shè)置一些自定義字段。
    Crash是騰訊的bugly,沒(méi)有嘗試。
    群組管理:可以手動(dòng)創(chuàng)建群組。
    回調(diào)配置: 這個(gè)設(shè)置回調(diào)url和那些需要回調(diào),這個(gè)很重要,后面也需要用到,后面再解釋。
    輔助工具:這個(gè)可以不用,可以下載TLS可執(zhí)行命令來(lái)執(zhí)行。

2. 生成sig值

這個(gè)步驟是所有操作的基礎(chǔ),我們這里選擇的是 獨(dú)立模式:用戶帳號(hào)信息由開(kāi)發(fā)者保存,用戶身份驗(yàn)證(比如注冊(cè)與驗(yàn)密)也由開(kāi)發(fā)者負(fù)責(zé)。

image.png

我們自己的應(yīng)用后臺(tái)服務(wù)需要提供基本的簽名功能,傳入 參數(shù) sdkappid 、私鑰、identifier,返回一個(gè)usersig值,其中

  • sdkappid:就是上面準(zhǔn)備工作里應(yīng)用id
  • 私鑰就是上面準(zhǔn)備工作下載的密鑰文件中的private_key文件內(nèi)容
  • identifier就是我們業(yè)務(wù)系統(tǒng)的用戶唯一標(biāo)識(shí)
    TLS后臺(tái)API使用手冊(cè)提供了Java和其它語(yǔ)言的庫(kù)我們可以集成到我們的業(yè)務(wù)服務(wù)上。我們平常調(diào)試可以用它提供的工具來(lái)調(diào)試
    image.png

    以后所有的對(duì)騰訊云的http請(qǐng)求都必須包含identifier和usersig,騰訊云會(huì)驗(yàn)證合法性。

3. 用戶登陸

這個(gè)登陸指對(duì)騰訊云IM的login,因?yàn)槲覀冇玫氖仟?dú)立模式,則這個(gè)動(dòng)作的前提是這個(gè)用戶已經(jīng)成功登陸了業(yè)務(wù)系統(tǒng)。
這里有二種方式登陸:

  • 第一種是請(qǐng)求咨詢的用戶在App端通過(guò)WebSDK的login函數(shù)
webim.login(loginInfo, listeners, options,cbOk,cbErr)

注意:參數(shù)appIDAt3rd和sdkAppID參數(shù)值一樣。

  • 第二種是通過(guò)單個(gè)或批量導(dǎo)入,比如回答咨詢的服務(wù)者從沒(méi)有登陸過(guò),但是用戶想咨詢服務(wù)者,則會(huì)遇到問(wèn)題。我們可以考慮當(dāng)服務(wù)者注冊(cè)的時(shí)候就單個(gè)導(dǎo)入到騰訊內(nèi)部創(chuàng)建一個(gè)內(nèi)部ID,使沒(méi)有登錄騰訊云的應(yīng)用自有帳號(hào)能夠使用騰訊云服務(wù)。參考導(dǎo)入文檔

4. 發(fā)送接受消息

這里指客戶端發(fā)送和接受消息。WebSDK是基于H5和小程序的IM的共有js庫(kù),它們的差別就是用H5繪制聊天界面還是用小程序繪制,真正的通訊機(jī)制完全一樣。
不過(guò)和Android,iOS的原生比較,WebSDK不支持很多功能,比如不支持短視頻,不支持語(yǔ)音發(fā)送(支持解析),不支持地理位置(支持解析)。

5. 騰訊云后端服務(wù)和回調(diào)服務(wù)

騰訊云提供了后端云服務(wù)REST API來(lái)實(shí)現(xiàn)很多功能,很多情況需要我們的業(yè)務(wù)服務(wù)端調(diào)用這些API來(lái)處理IM的一些操作。
這里要注意的一個(gè)細(xì)節(jié)是所有的后端REST API都是以管理員身份來(lái)獲取UserSig和其它操作,在我們的前期準(zhǔn)備里管理員是myadmin。
在應(yīng)用配置里如果配置了我們的業(yè)務(wù)服務(wù)回調(diào)URL,在IM聊天中就會(huì)自動(dòng)觸發(fā)我們的業(yè)務(wù)服務(wù),通過(guò)這個(gè)回調(diào)和騰訊云后端服務(wù),我們能完成我們的后期幾個(gè)需求,以下是幾個(gè)基本流程圖:

image.png

這個(gè)流程中,所有消息都先經(jīng)過(guò)我們的業(yè)務(wù)系統(tǒng)來(lái)決定怎么回復(fù),誰(shuí)回復(fù),包括如果需要翻譯也可以加到流程中。
這里提一下,后端服務(wù)騰訊提供了一個(gè)Web工具能很方便的調(diào)試云API。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容