適用於 Android 的 Sendbird 聊天 SDK 可讓您輕鬆地將即時聊天新增至客戶端應用程式。 Sendbird 提供功能豐富、可擴展且經過驗證的聊天解決方案,深受 Reddit、Hinge、PubG 和 Paytm 等公司的信賴。
聊天 SDK 提供了完整的功能來提供豐富的聊天體驗,透過新增使用者登入、列出可用頻道、選擇或建立開放頻道或群組頻道、透過頻道事件委託接收訊息和其他事件來實現它。能力。一旦這個基本功能到位,恭喜你,你現在有了一個聊天應用程式!
完成此操作後,請查看 Sendbird 支援的所有其他功能,並添加最適合您的使用者的功能。
在文件中了解有關 Android 版 Sendbird Chat 的更多資訊。如果您有任何意見、問題或功能請求,請在 Sendbird 社群中告訴我們。
適用於 Android 的聊天 SDK 的最低要求是:
Android 5.0 (API level 21) or higher
Java 8 or higher
Android Gradle plugin 3.4.2 or higher
Firebase Cloud Messaging 19.0.1 or higher
注意:Sendbird 伺服器支援從版本 1.0 到 1.3 的傳輸層安全性 (TLS)。例如,在不支援 TLS 1.3 的伺服器區域,將支援從 1.2 到 1.0 的較低版本,以實現安全資料傳輸。
最快的入門方法是使用範例儲存庫中的範例應用程式之一,在 Sendbird 儀表板中建立一個應用程序,並將App ID
複製到範例應用程序,然後就可以開始了。
在安裝 Sendbird Chat SDK 之前,您需要在 Sendbird Dashboard 上建立一個 Sendbird 應用程式。初始化聊天 SDK 時,您將需要 Sendbird 應用程式的App ID
。
注意:每個 Sendbird 應用程式都可以與單一客戶端應用程式整合。在同一應用程式中,使用者可以跨所有平台相互通信,無論是在行動裝置上還是在網路上。
如果您熟悉使用外部程式庫或 SDK,安裝聊天 SDK 會很簡單。首先,將以下程式碼加入根build.gradle
檔案:
allprojects {
repositories {
.. .
maven { url " https://repo.sendbird.com/public/maven " }
}
}
注意:確保上述程式碼區塊未新增到您的模組
build.gradle
檔案中。
如果使用 Gradle 6.8 或更高版本,請將以下內容新增至settings.gradle
檔案:
dependencyResolutionManagement {
repositories {
maven { url " https://repo.sendbird.com/public/maven " }
}
}
然後,將依賴項新增至專案的頂層build.gradle
檔案:
dependencies {
.. .
implementation ' com.sendbird.sdk:sendbird-chat:4.21.1 '
.. .
}
Sendbird SDK for Android 預設啟用 TLS 1.3。若要停用它,請將以下配置包含到 gradle 依賴項:
注意:SendBird Android SDK 依賴 Conscrypt 函式庫來支援 TLS 1.3
dependencies {
implementation ( ' com.sendbird.sdk:sendbird-chat:4.21.1 ' ) {
exclude group : ' org.conscrypt ' , module : ' conscrypt-android '
}
}
Chat SDK 需要係統權限,以便與AndroidManifest.xml
伺服器進行通訊以及在使用者裝置的儲存空間上進行讀寫。
< uses-permission android : name = " android.permission.INTERNET " />
< uses-permission android : name = " android.permission.READ_EXTERNAL_STORAGE " />
< uses-permission android : name = " android.permission.WRITE_EXTERNAL_STORAGE " />
當您使用minifyEnabled true
建置 APK 時,將以下行新增至模組的ProGuard
規則檔案。
-dontwarn com.sendbird.android.shadow. **
現在聊天 SDK 已匯入,我們已準備好開始發送訊息。
為了使用 Chat SDK 的功能,必須透過 Sendbird 伺服器的使用者驗證來啟動SendbirdChat
實例。此實例基於經過身份驗證的使用者帳戶與伺服器進行通訊和交互,然後使用者的客戶端應用程式可以使用聊天SDK的功能。
以下是使用聊天 SDK 發送第一則訊息的步驟:
現在,在應用程式中初始化聊天 SDK,以允許聊天 SDK 響應 Android 用戶端應用程式中連線狀態的變更。
若要初始化SendbirdChat
實例,請將 Sendbird Dashboard 中 Sendbird 應用程式的APP_ID
作為參數傳遞給SendbirdChat.init()
方法中的參數。由於SendbirdChat.init()
只能是單一實例,因此在 Android 用戶端應用程式中僅呼叫一次。通常,初始化是在使用者登入畫面中實現的。
注意:建議在
Application
實例的onCreate()
方法中初始化Chat SDK。
SendbirdChat . init ( InitParams ( APP_ID , applicationContext, useCaching = true ))
使用init()
方法進行初始化後,您的客戶端應用程式在呼叫任何方法之前必須始終連接到 Sendbird 伺服器。如果嘗試在沒有連線的情況下呼叫方法,則會傳回ERR_CONNECTION_REQUIRED (800101)
錯誤。
透過唯一的使用者 ID 或結合存取權杖將使用者連接到 Sendbird 伺服器。 Sendbird 喜歡後一種方法,因為它可以確保用戶的隱私。前者在開發階段或您的服務不需要額外的安全性時很有用。
使用其唯一的使用者 ID將使用者連接到 Sendbird 伺服器。預設情況下,Sendbird 伺服器可以透過唯一的使用者 ID 來驗證使用者。根據請求連接,伺服器查詢資料庫以檢查是否符合。任何未使用的用戶 ID 都會自動註冊為 Sendbird 系統的新用戶,而現有 ID 則允許間接登入。 ID 在 Sendbird 應用程式中必須是唯一的,例如您服務中的雜湊電子郵件地址或電話號碼。
這使您無需深入了解令牌註冊程序的細節即可啟動並運行,但請確保在啟動之前啟用強制令牌,因為如果不啟用令牌,啟動會存在安全風險。
SendbirdChat .connect( USER_ID ) { user, e ->
if (e != null ) { // Error.
return @connect
}
}
Sendbird 喜歡您透過使用令牌來傳遞 APP ID,因為它可以確保使用者的隱私和安全。建立使用者及其存取令牌,或發出要在連線期間傳遞的會話令牌。可以在此處找到存取權杖和會話令牌之間的比較。頒發令牌後,使用者需要在用於登入的SendbirdChat.connect()
方法中提供頒發的令牌。
SendbirdChat.connect()
方法。 SendbirdChat .connect( USER_ID , AUTH_TOKEN ) { user, e ->
if (e != null ) { // Error.
return @connect
}
}
使用以下程式碼建立一個開放通道。開放渠道是 Sendbird 應用程式中的所有用戶無需邀請即可輕鬆參與的管道。
OpenChannel .createChannel( OpenChannelCreateParams ()) { channel, e ->
if (e != null ) { // Error.
return @createChannel
}
}
注意:您也可以建立群組頻道來傳送訊息。要了解更多信息,請參閱在群組頻道頁面中建立頻道。
進入開放通道發送和接收訊息。
OpenChannel .getChannel( CHANNEL_URL ) { channel, e ->
if (e != null ) { // Error.
return @getChannel
}
channel?.enter { enterError ->
if (enterError != null ) { // Error.
return @enter
}
}
}
最後,向頻道發送訊息。有三種類型:使用者訊息(純文字)、文件訊息(二進位文件,例如圖像或 PDF)以及管理訊息(也透過儀表板或聊天平台發送的純文字) API。
openChannel.sendUserMessage( MESSAGE ) { message, e ->
if (e != null ) { // Error.
return @sendUserMessage
}
}
聊天 SDK 的大小是將其整合到您的應用程式時需要考慮的一個重要因素。聊天SDK的大小如下:
在Sendbird,我們是一個由謙遜、友好和勤奮的多元化團隊組成的團隊,我們有著共同的目標,即構建下一代移動和社交技術,涵蓋聊天、語音和視頻,這些技術正在改變我們的工作和生活方式。我們一直在尋找優秀的人才加入我們的團隊。請查看我們的職業頁面以獲取更多資訊。