簡體   English   中英

如何在Quickblox的群聊中禁用特定用戶的聊天推送

[英]How to disable chat push for specific user in Group chat of Quickblox

我想禁用仍未接受該組請求的用戶的推送通知。

注意

根據我使用quickblox框架2.7及以下版本的經驗,這個答案是有效的。 由於quickblox經常發布更新版本的框架,因此您可能會在將來找到更好的API。 直到那時你可以使用這種方法。

回答

我不認為您可以使用Quickblox api禁用組中特定用戶的推送通知。

當您向一個組發送消息( QBChat )時, QBChat中的每個人QBChatDialog收到消息,包括發送給他/她自己的人。

有一個隱私列表可以防止用戶接收來自特定用戶的消息,但需要從用戶端發起消息。 所以我不認為這會對你有所幫助。 此功能可用於阻止某人/群組向用戶發送消息。

您最好的選擇是,在用戶接受群組請求之前,不要將用戶添加到群組。 實現您自己的邏輯,將請求發送給組中的每個用戶,並在他/她接受請求時繼續添加用戶。

1>使用特定自定義對象發送帶有組ID,組類型,組名和所有其他必要數據的QBChat消息,這將使其與其他QBChat消息區分為組中的所有用戶。

2>收到此特殊消息后,顯示一個特定的UI來處理它,就像一個警告“你想加入小組嗎?” 和按鈕接受或拒絕

3>在點擊接受時,對您自己的服務器進行WS調用,並在您的服務器api中將用戶添加到他已同意加入的特定組。 因為您已經使用包含對話框信息的對象填充了QBChat消息,所以您應該能夠輕松地通知服務器用戶已加入的組。

一旦用戶加入群組,他將繼續收到群組中的所有消息

編輯

以下是評論中問題的詳細解答:)

我非常肯定你會問這個問題:)

為了將占用者id添加到現有的QBChatDialog組,我們使用了Quickblox的其余api。 記得我告訴過你不要將所有參與者最初添加到組中,在他們接受加入組之后逐個添加它們? 當用戶接受加入該組時,我們調用我們的rest api,后者又調用quickblox api並將當前用戶ID添加到組:)

您可以在quickblox的API部分輕松找到api。 如果你發現它給我的時間到星期一,那么請問我的API開發人員並更新你的相同內容

這種方法有CATACH

QB文檔明確指出,只有該組的所有者才能將該成員添加到該組中。 這意味着僅僅因為你有一個REST API,你就無法將用戶添加到組中。 您需要擁有組所有者的有效會話ID。 登錄時您將獲得會話ID,我相信您非常了解它:)

現在我將如何獲得組所有者會話ID?

這是我們遵循的方法。 我們已經預見到在我們開始項目之前可能會出現這樣的問題:)

當用戶使用我們的應用程序注冊時,我們將其用戶名和密碼保存在我們的服務器數據庫中並生成隨機用戶名和密碼,並使用該用戶名和密碼創建一個Quickblox帳戶,我們保存此快速blox用戶名,quickblox密碼和quickblox用戶該用戶的ID :)

因此,雖然注冊實際上處理兩個服務器,但用戶總是覺得他正在處理一台服務器而且他仍然認為他正在使用他的用戶名和密碼登錄聊天。

但實際上,當用戶使用他的用戶名和密碼在登錄響應中登錄app時,我們會獲得服務器用於創建帳戶的quickblox用戶名和quickblox密碼。 收到它后,應用程序使用QB框架使用該用戶名和密碼登錄quickblox帳戶:)

這樣用戶永遠不會知道他的quickblox用戶名和密碼以及用戶ID :)給我們很多控制權:)

那就是說:)現在當用戶創建一個組並發出一個包含自定義對象的特殊QBChat消息時,在該自定義對象中以及對話框的細節他也發送了他的quickbloxuserid :)

現在當收到特殊QBChat的用戶接受請求時,我們提取對話框ID(他打算加入)group_owner_id(創建對話框並發出此特殊消息的用戶的ID)並將其發送到我們的休息api以及他自己的身份:)

一旦API收到組所有者ID,它就會從其數據庫中記錄QB用戶名和密碼,並使用該數據庫登錄並獲取有效的會話ID,最后將用戶添加到具有該會話ID的組。

注意 :Quickblox允許用戶一次登錄多個設備,這意味着它可以為用戶提供多個有效的會話ID。

希望我明白我的觀點:)快樂的編碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM