Qt+騰訊IM開發筆記(一):騰訊IM介紹、使用和Qt整合騰訊IM-SDK的工程模板Demo

紅胖子(紅模仿)發表於2021-08-02

前言

  開發一個支援全國的IM聊天,可以有基本的功能,傳送文字、圖片、檔案等等相關內容。

 

騰訊IM產品

概述

  騰訊即時通訊IM是騰訊推出的即時聊天程式,當前時間為2020年3月(騰訊IM的優惠活動和售賣方案不同時期會有變化)。
  該IM提供各端接入介面、穩定必達、覆蓋全球的即時通訊雲服務上。

應用場景

  包括但不限於以下場景:
  在這裡插入圖片描述
  在這裡插入圖片描述

特點

訊息傳輸

  支援文字、圖片、短語音、短視訊等富媒體訊息及自定義訊息與自定義表情,支援儲存歷史漫遊訊息,整合訊息撤回、訊息轉發、安全打擊等擴充套件能力,構建穩定、便捷的訊息傳輸通道。
  在這裡插入圖片描述

會話管理

  整合 TUIKit 元件,輕鬆實現新增會話、會話置頂、會話列表展示,未讀訊息計數,歷史漫遊訊息展示等功能。
  在這裡插入圖片描述

群組管理

  支援群成員管理、群組自定義欄位、群資料與群公告變更與展示、群組置頂等能力,提供私有群、公開群、聊天室、音視訊聊天室等多種群組型別,滿足個性化群組需要。
  在這裡插入圖片描述

資料管理

  支援設定使用者資料、更改頭像,可配置好友關係,提供好友驗證選項,適配您的業務場景。
  在這裡插入圖片描述

旗艦版和專業版功能對比

  即時通訊 IM 套餐包分為體驗版、專業版和旗艦版,建立應用後預設為體驗版(免費),您可以根據實際業務需求選擇不同的套餐包。
  在這裡插入圖片描述

構架

  即時通訊 IM 提供全球接入、單聊、群聊、訊息推送、資料關係鏈託管、帳號鑑權等全方位解決方案,並提供完備的 App 接入、後臺管理介面。
  在這裡插入圖片描述

費用

  從2018年9月14日之後,註冊sdkappid的客戶都需要購買預付費吧,999,之前的不用,意味著,你想自己做Demo先出999吧,如下圖:
  在這裡插入圖片描述

 

使用騰訊IM準備

  產品簡介: https://cloud.tencent.com/document/product/269/1498
  價格說明: https://cloud.tencent.com/document/product/269/11673
  應用場景: https://cloud.tencent.com/document/product/269/32579
  Demo 體驗: https://cloud.tencent.com/document/product/269/36852
  接入SDK:https://cloud.tencent.com/document/product/269/37176

騰訊IM服務的SDKAppID和祕鑰

  在這裡插入圖片描述

騰訊開發文件

  https://cloud.tencent.com/document/product/269/37176
  下載SDK

IM SDK基本概念

會話

  會話(Conversation)分為兩種:

  • 一種是 C2C 會話,表示單聊情況自己與對方建立的對話,讀取訊息和傳送訊息都是通過會話完成;
  • 一種是群會話,表示群聊情況下,群內成員組成的會話,群會話內傳送訊息群成員都可接收到。如下圖所示,一個會話表示與一個好友的對話;
      在這裡插入圖片描述

訊息

  IM SDK 中訊息(Message)表示要傳送給對方的內容,訊息包括若干屬性,如是否自己已讀,是否已經傳送成功,傳送人帳號,訊息產生時間等;一條訊息由若干Elem組合而成,每種Elem可以是文字、圖片、表情等等,訊息支援多種 Elem組合傳送。
  在這裡插入圖片描述

群組ID

  群組 ID 唯一標識一個群,由後臺生成,建立群組時返回。

IM SDK使用說明

  在這裡插入圖片描述
  在這裡插入圖片描述

IM SDK介面

  文件地址:https://cloud.tencent.com/document/product/269/33543
  如果介面的引數字串包含中文,請使用 UTF-8 編碼。

事件回撥介面

  在這裡插入圖片描述

IM SDK 初始化相關介面

  在這裡插入圖片描述

登入登出相關介面

  在這裡插入圖片描述

會話相關介面

  在這裡插入圖片描述

訊息相關介面

  在這裡插入圖片描述

群組相關介面

  在這裡插入圖片描述

使用者資料相關介面

  在這裡插入圖片描述

關係鏈相關介面

  在這裡插入圖片描述

 

模組化

  在這裡插入圖片描述

Demo關鍵程式碼

tencentIMManager.pri

# ImSDK
INCLUDEPATH += $$PWD/ImSDK/includes
HEADERS += \
    $$PWD/ImSDK/includes/TIMCloud.h \
    $$PWD/ImSDK/includes/TIMCloudCallback.h \
    $$PWD/ImSDK/includes/TIMCloudComm.h \
    $$PWD/ImSDK/includes/TIMCloudDef.h

LIBS += -L$$PWD/ImSDK/lib/Win32/Release \
        -limsdk
 

工程模板V1.0.0

  對應該模組的的V1.0.0

 

入坑

入坑一:登入鑑權的問題

問題

  登陸時,回撥錯誤70003
  在這裡插入圖片描述

原因

  每次登入,需要輸入userId和UserSig,UserSig為依賴userId生成的,兩者和二唯一被認為是唯一可靠的認證,才可以登入。

解決方法

  本地生成userSig,做大型聊天防止破解等提高安全性,則可以讓後臺向騰訊生成userSig,以保證可靠。
  在這裡插入圖片描述
  將兩檔案,融入到程式碼中。

入坑二:編譯權鑑獲取時缺庫“bcrypt”

問題

  在這裡插入圖片描述

解決

  在這裡插入圖片描述
  Qt的環境自帶了,庫檔案新增進去

入坑三:編譯鑑權獲取時缺庫“zlib”

問題

  在這裡插入圖片描述

原因

  缺少zlib庫,需要自己編譯

解決

  筆者之前曾經編譯過,直接賦值拿過來即可,讀者編譯請參照博文:《zlib開發筆記(一):zlib庫介紹、編譯和工程模板
  新增標頭檔案路徑和庫

入坑四:登陸時報錯70003

問題

  在這裡插入圖片描述

原因

  中文的userId。

解決

  只能使用英文數字id,不能使用中文。

入坑五:登陸時報錯70003

問題

  在這裡插入圖片描述

原因

  在這裡插入圖片描述

解決

  使用std::string
  在這裡插入圖片描述

 

若該文為原創文章,轉載請註明原文出處
本文章部落格地址:https://hpzwl.blog.csdn.net/article/details/119305601

相關文章