騰訊帝國最重要的產(chǎn)品QQ和微信都是IM為基礎(chǔ),相信騰訊云IM也能有很好的體驗脐雪,我們在項目上準(zhǔn)備使用騰訊云通信厌小。
我們項目的基本需求是App中使用IM,實現(xiàn)基本的聊天功能战秋,有一些我們的值班人員通過IM給App的用戶提供實時的業(yè)務(wù)咨詢璧亚,同時也提供用戶和用戶之間的聊天。
由于項目App第一期時間緊脂信,先考慮基于H5或小程序癣蟋,二期再考慮原生實現(xiàn)Android和iOS版本,AppWorker會封裝這個組件狰闪。
基本流程就是App端或小程序有自己的登陸系統(tǒng)疯搅,有二種基本角色:用戶(問題咨詢者)和服務(wù)人員(問題回答者)。用戶登陸找到服務(wù)人員埋泵,然后用do_WebView組件加載聊天網(wǎng)頁幔欧,實現(xiàn)聊天功能。后期還要逐漸增加其它功能:
- 自動翻譯:用戶A輸入中文丽声,用戶B或服務(wù)人員獲取到的是翻譯完的英語礁蔗。
- 自動回復(fù):后面對接騰訊AI助手,相當(dāng)于用戶可以和AI對話
- 自動分配人工答復(fù):如果AI無法回答雁社,根據(jù)值班時間瘦麸,自動切換到某個值班人員。
1.準(zhǔn)備工作
-
創(chuàng)建云通信的應(yīng)用,注意SDKAPPID這個值后面會一直要用到歧胁。
image.png -
點擊應(yīng)用配置,有一些配置必須提前設(shè)置好滋饲。設(shè)置界面如下:
image.png
基本配置
下比較重要的賬號體系下的下載私鑰和公鑰厉碟,下載的zip包含公鑰和私鑰2個文件:private_key,public_key ,這2個文件請保存好。另外還有一個賬號管理員需要記錄下來屠缭,后面需要用它作為服務(wù)端API發(fā)起的用戶Id箍鼓,這里如截圖,值為myadmin.
image.png
功能配置
里比較重要的是設(shè)置一些自定義字段呵曹。
Crash
是騰訊的bugly,沒有嘗試款咖。
群組管理
:可以手動創(chuàng)建群組。
回調(diào)配置
: 這個設(shè)置回調(diào)url和那些需要回調(diào)奄喂,這個很重要铐殃,后面也需要用到,后面再解釋跨新。
輔助工具
:這個可以不用富腊,可以下載TLS可執(zhí)行命令來執(zhí)行。
2. 生成sig值
這個步驟是所有操作的基礎(chǔ)域帐,我們這里選擇的是 獨立模式:用戶帳號信息由開發(fā)者保存赘被,用戶身份驗證(比如注冊與驗密)也由開發(fā)者負(fù)責(zé)。
我們自己的應(yīng)用后臺服務(wù)需要提供基本的簽名功能肖揣,傳入 參數(shù) sdkappid 民假、私鑰、identifier龙优,返回一個usersig值羊异,其中
- sdkappid:就是上面準(zhǔn)備工作里應(yīng)用id
- 私鑰就是上面準(zhǔn)備工作下載的密鑰文件中的private_key文件內(nèi)容
- identifier就是我們業(yè)務(wù)系統(tǒng)的用戶唯一標(biāo)識
TLS后臺API使用手冊提供了Java和其它語言的庫我們可以集成到我們的業(yè)務(wù)服務(wù)上。我們平常調(diào)試可以用它提供的工具來調(diào)試
image.png
以后所有的對騰訊云的http請求都必須包含identifier和usersig彤断,騰訊云會驗證合法性野舶。
3. 用戶登陸
這個登陸指對騰訊云IM的login,因為我們用的是獨立模式瓦糟,則這個動作的前提是這個用戶已經(jīng)成功登陸了業(yè)務(wù)系統(tǒng)筒愚。
這里有二種方式登陸:
- 第一種是請求咨詢的用戶在App端通過WebSDK的login函數(shù)
webim.login(loginInfo, listeners, options,cbOk,cbErr)
注意:參數(shù)appIDAt3rd和sdkAppID參數(shù)值一樣赴蝇。
- 第二種是通過單個或批量導(dǎo)入菩浙,比如回答咨詢的服務(wù)者從沒有登陸過,但是用戶想咨詢服務(wù)者句伶,則會遇到問題劲蜻。我們可以考慮當(dāng)服務(wù)者注冊的時候就單個導(dǎo)入到騰訊內(nèi)部創(chuàng)建一個內(nèi)部ID,使沒有登錄騰訊云的應(yīng)用自有帳號能夠使用騰訊云服務(wù)考余。參考導(dǎo)入文檔
4. 發(fā)送接受消息
這里指客戶端發(fā)送和接受消息先嬉。WebSDK是基于H5和小程序的IM的共有js庫,它們的差別就是用H5繪制聊天界面還是用小程序繪制楚堤,真正的通訊機(jī)制完全一樣疫蔓。
不過和Android含懊,iOS的原生比較,WebSDK不支持很多功能衅胀,比如不支持短視頻岔乔,不支持語音發(fā)送(支持解析),不支持地理位置(支持解析)滚躯。
5. 騰訊云后端服務(wù)和回調(diào)服務(wù)
騰訊云提供了后端云服務(wù)REST API來實現(xiàn)很多功能雏门,很多情況需要我們的業(yè)務(wù)服務(wù)端調(diào)用這些API來處理IM的一些操作。
這里要注意的一個細(xì)節(jié)是所有的后端REST API都是以管理員身份來獲取UserSig和其它操作掸掏,在我們的前期準(zhǔn)備里管理員是myadmin茁影。
在應(yīng)用配置里如果配置了我們的業(yè)務(wù)服務(wù)回調(diào)URL,在IM聊天中就會自動觸發(fā)我們的業(yè)務(wù)服務(wù)丧凤,通過這個回調(diào)和騰訊云后端服務(wù)募闲,我們能完成我們的后期幾個需求,以下是幾個基本流程圖:
這個流程中息裸,所有消息都先經(jīng)過我們的業(yè)務(wù)系統(tǒng)來決定怎么回復(fù)蝇更,誰回復(fù),包括如果需要翻譯也可以加到流程中呼盆。
這里提一下年扩,后端服務(wù)騰訊提供了一個Web工具能很方便的調(diào)試云API。