集成環(huán)信客服功能

項目需要集成環(huán)信客服系統(tǒng),這兩天的摸爬滾打和客服溝通后整理一篇文章,以作備份

環(huán)信的客服真的真的真的很贊-我寫的環(huán)信客服云demo地址:https://gitee.com/lalzxy/huanxinkefuim。

詳細(xì)集成步驟如下:

SDK方面

1.先把?移動客服:商城”demo源碼和HelpDeskUI(iOS)?下載下來,該SDK基于IM SDK 3.x,如同時使用環(huán)信IM功能(非音視頻),需使用此文檔中的初始化、登錄、登出操作,不需要添加IM的SDK,其IMSDK-API正常使用。

2.打開下載好的demo,架構(gòu)如下圖

將HelpDeskDynamicSDK和HelpDeskUI兩個文件夾,在Finder中復(fù)制到自己的項目的適當(dāng)路徑中(這個地方有個坑,稍后下午詳細(xì)說明),然后拖拽到項目時選擇?Create groups。

添加HelpDeskUI報Passing ‘CGFloat’(aka ‘double’) to parameter of incompatible type ‘__strong id’*/錯誤,就在pch定義如下宏

#define MAS_SHORTHAND_GLOBALS

3.選中當(dāng)前的TARGET,向 General → Embedded Binaries 中添加以上兩個依賴庫。Linked Frameworks and Libraries 中會自動增加。


4.Build Phases ---> Link Binary With Libraries 中添加依賴庫


????如下圖:


5.Build Settings ---> Linking ---> Other Linker Flags 中增加 -ObjC。

6.SDK 不支持 bitcode,在 Build Settings ---> Build Options ---> Enable Bitcode 中設(shè)置 NO。


7.在工程info.plist文件中 增加隱私權(quán)限


Privacy - Photo Library Usage Description 需要訪問您的相冊

Privacy - Microphone Usage Description 需要訪問您的麥克風(fēng)

Privacy - Camera Usage Description 需要訪問您的攝像機(jī)


詳細(xì)的權(quán)限設(shè)置,請?點(diǎn)我點(diǎn)我。


8.在 .pch 中 或者 全局的 .h 中添加如下代碼:

9.編譯提示'SCLoginManager.h' file not found,將demo里SCLoginManager.h和SCLoginManager.m拖入工程,此時會報'HDChatViewController.h' file not found,將HDChatViewController、AppDelegate+HelpDesk、HFileViewController、LocalDefine.h拖入工程。

10.如報'Bugly/Bugly.h' file not found,選擇target-Build Phases-Linker Binary With Libraies-選擇+號-Add Other-選擇demo里的Bugly.framework,將#import "LocalDefine.h"、#import "SCLoginManager.h"加入pch

11.編譯工程提示:


將SVProgressHUD庫文件夾拖入工程,并在pch中引入。

12.再次編譯工程如下:


在pch中引入#import "UIButton+WebCache.h",再次編譯成功。

創(chuàng)建APP關(guān)聯(lián)

上面的步驟依據(jù)文檔 可以輕松完成,但是APP相關(guān)關(guān)聯(lián),就比較坑了,如果沒有集成過環(huán)信聊天的經(jīng)歷的話很容易碼入誤區(qū),下面請緊跟隨筆者步驟:

1.需要申請兩個賬號:移動客服后臺環(huán)信管理后臺,如果已經(jīng)有了請下一步。

2.先在?環(huán)信管理后臺?創(chuàng)建應(yīng)用


點(diǎn)擊應(yīng)用顯示應(yīng)用的信息(** AppKeyClient ID、Client Secret** 這幾個要記著)


3.在?環(huán)信管理后臺?注冊IM用戶(名稱要記著)-點(diǎn)擊剛注冊應(yīng)用名稱-選擇IM用戶-選擇注冊IM用戶


4.移至?環(huán)信管理后臺?創(chuàng)建APP關(guān)聯(lián)(?官方文檔,官方文檔介紹有些不全面,而且有點(diǎn)不全面 )

登錄客服賬號在后臺右上角選擇?管理員模式?--->?渠道管理?--->?手機(jī)APP?--->?添加APP關(guān)聯(lián)?--->?去關(guān)聯(lián)IM賬號

5.輸入關(guān)聯(lián)的應(yīng)用的信息,下圖方框中為所關(guān)聯(lián)應(yīng)用創(chuàng)建的IM用戶


輸入完畢,保存即可如下圖


6.記下?tenantId?租戶ID,下文用到:設(shè)置?--->?企業(yè)信息

7.上面步驟完成后,官方文檔中沒有提及的一步:?設(shè)置--->會話分配規(guī)則

如編譯提示dyld: Library not loaded: @rpath/HelpDesk.framework/HelpDesk

? Referenced from: /var/containers/Bundle/Application/C4B01F93-FD51-472F-A535-9220E246D8DD/環(huán)信客服集成.app/環(huán)信客服集成

? Reason: image not found

說明HelpDesk.framework沒有加上

集成客服成功進(jìn)入聊天頁面

1.輸入表情符號,顯示表情字符串,將下面代碼復(fù)制到AppDelegate入口函數(shù)里。

[[HDEmotionEscape sharedInstance] setEaseEmotionEscapePattern:@"\\[[^\\[\\]]{1,3}\\]"];

? ? [[HDEmotionEscape sharedInstance] setEaseEmotionEscapeDictionary:[HDConvertToCommonEmoticonsHelper emotionsDictionary]];

2.輸入框顯示英文input? a new message,創(chuàng)建Localizable.strings語言環(huán)境,步驟如下:

? ? 1.創(chuàng)建Localizable.strings,選擇Strings File,取名為Localizable.strings,一定要這個名字


2.選擇如圖“+”,選擇Chiness(Simpified)

3.在Localization中勾選Chinese(Simplified)


4.將Localizable.strings展開,分別在下面二個文件中輸入內(nèi)容,可參考另外一個Demo,環(huán)信(IM)



修改聊天頁面導(dǎo)航欄標(biāo)題直接創(chuàng)建個控制器繼承HDMessageViewController,設(shè)置self.navigationitem.title,設(shè)置企業(yè)歡迎語都在HDMessageViewController.m里

聊天頁面顯示歷史消息,而不是每次進(jìn)來都是空白聊天頁面,在繼承HDMessageViewController控制器里調(diào)用tableViewDidTriggerHeaderRefreshz這個方法

設(shè)置客服、訪客昵稱和頭像


設(shè)置客服、訪客昵稱和頭像

發(fā)送帶訪客屬性的消息給客服-訪客昵稱也可以在這里設(shè)置


發(fā)送帶訪客屬性的消息給客服-訪客昵稱也可以在這里設(shè)置


App退到后臺無法收到通知消息-這時候調(diào)用的是本地通知,如下圖

? ? ? ? 1.實(shí)現(xiàn)代理? ?2.監(jiān)聽代理方法? 3.在代理方法里調(diào)用環(huán)信demo的showNotificationWithMessage這個方法


App退到后臺無法收到通知消息


集成離線推送消息通知-收不到通知,看如下圖片


集成離線推送消息通知-收不到通知


發(fā)送訂單信息給客服(安裝環(huán)信文檔集成,第一次進(jìn)入聊天頁面沒有發(fā)送訂單信息-這里直接是參考環(huán)信demo)


集成環(huán)信客服功能過程中的遇到一些問題

1.由于環(huán)信客服SDK集成了一些常用的第三方的庫,如果項目本身也存在這些第三方的庫,就 會引起沖突,刪除掉,然后把報錯的地方修改成正常的調(diào)用即可


2.和客服溝通后對一些疑問的整理:

Q:在APP中集成了客服系統(tǒng)后 客戶 和 客服 之間的關(guān)系如何協(xié)調(diào)?

A:IM服務(wù)號就是 IM用戶,你新注冊一個IM用戶 然后用于綁定IM服務(wù)號的,然后客戶端登錄的用戶 都與這個綁定的IM服務(wù)號聊天,客服系統(tǒng)將與這個IM服務(wù)號聊天的會話分配給客服

Q:注冊的IM用戶 相當(dāng)于 客服和用戶之前的 樞紐么

M:可以這么理解

Q:為什么 這個賬號可以在服務(wù)端注冊,也可以在后臺管理系統(tǒng)手動添加啊

M:其實(shí)都是一個接口操作的,服務(wù)器端的rest接口

Q:是不是 服務(wù)端返回的用于登陸的IM賬號不同 APP用戶關(guān)聯(lián)的客服也不同了吶?

M:未必,移動客服那邊綁定一個IM服務(wù)號就夠用了,客戶端登錄的其他IM用戶(服務(wù)端返回的或者注冊的)都給這個移動客服綁定的IM服務(wù)號發(fā)消息,環(huán)信的客服系統(tǒng)就能收到客戶端發(fā)送過來的消息了

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

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

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