腾讯云即时通信IMAndroid&iOS&Windows&Mac_AI解决方案_同尘科技

即时通信 IM 1年前 (2023-11-03) 浏览 25

功能描述

如果您需屏蔽某人的消息,可以把该用户拉入黑名单。

黑名单

拉黑某人

您可以调用 addToBlackList (Android / iOS & Mac / Windows) 接口把某用户加入黑名单,即拉黑该用户。
如果您事先调用 addFriendListener 添加了监听器,拉黑后会触发 onBlackListAdded 回调。说明 如果用户 A 与用户 B 之间存在好友关系,拉黑后会解除双向好友关系,二者之间无法发起会话、无法发起加好友请求。被拉黑的用户默认不会感知到 “被拉黑” 的状态,消息发送后不会返回已被对方拉黑的错误码。
如果您希望被拉黑的用户在发消息时返回 ”已被对方拉黑“ 的错误提示,可以登录 即时通信 IM 控制台 关闭 “黑名单检查”。关闭后,被拉黑的用户在发送消息时,SDK 会报 20007 错误码。配置页面路径为:示例代码如下:AndroidiOS & MacWindows

List userIDList = new ArrayList();userIDList.add("user1");userIDList.add("user2");V2TIMManager.getFriendshipManager().addToBlackList(userIDList, new V2TIMValueCallback<List>() {  @Override  public void onSuccess(List v2TIMFriendOperationResults) {    // 拉黑成功  }
@Override public void onError(int code, String desc) { // 拉黑失败 }});
// 监听黑名单列表新增通知V2TIMManager.getFriendshipManager().addFriendListener(new V2TIMFriendshipListener() { @Override public void onBlackListAdd(List infoList) { // 黑名单列表新增通知 }});
// 拉黑某人[[V2TIMManager sharedInstance] addToBlackList:@[@"user1", @"user2"] succ:^(NSArray *resultList) {    // 拉黑成功} fail:^(int code, NSString *desc) {    // 拉黑失败}];
// 监听黑名单列表新增通知[[V2TIMManager sharedInstance] addFriendListener:self];- (void)onBlackListAdded:(NSArray*)infoList { // 黑名单列表新增通知}
template class ValueCallback final : public V2TIMValueCallback {public:    using SuccessCallback = std::function;    using ErrorCallback = std::function;
ValueCallback() = default; ~ValueCallback() override = default;
void SetCallback(SuccessCallback success_callback, ErrorCallback error_callback) { success_callback_ = std::move(success_callback); error_callback_ = std::move(error_callback); }
void OnSuccess(const T& value) override { if (success_callback_) { success_callback_(value); } } void OnError(int error_code, const V2TIMString& error_message) override { if (error_callback_) { error_callback_(error_code, error_message); } }
private: SuccessCallback success_callback_; ErrorCallback error_callback_;};
V2TIMStringVector userIDList;userIDList.PushBack(u8"user1");userIDList.PushBack(u8"user2");
auto callback = new ValueCallback{};callback->SetCallback( [=](const V2TIMFriendOperationResultVector& friendOperationResultList) { // 拉黑成功 delete callback; }, [=](int error_code, const V2TIMString& error_message) { // 拉黑失败 delete callback; });
V2TIMManager::GetInstance()->GetFriendshipManager()->AddToBlackList(userIDList, callback);
// 监听黑名单列表新增通知class FriendshipListener final : public V2TIMFriendshipListener {public: void OnBlackListAdded(const V2TIMFriendInfoVector& infoList) override { // 黑名单列表新增通知 } // 其他成员 ...};// 添加关系链事件监听器,注意在移除监听器之前需要保持 friendshipListener 的生命期,以免接收不到事件回调FriendshipListener friendshipListener;V2TIMManager::GetInstance()->GetFriendshipManager()->AddFriendListener(&friendshipListener);

解除拉黑

您可以调用 deleteFromBlackList (Android / iOS & Mac / Windows) 将某用户从黑名单中移除,移除后可正常发起加好友请求、发起会话。
如果您事先调用 addFriendListener 添加了监听器,解除拉黑后会触发 onBlackListDeleted 回调。示例代码如下:AndroidiOS & MacWindows

List userIDList = new ArrayList();userIDList.add("user1");userIDList.add("user2");V2TIMManager.getFriendshipManager().deleteFromBlackList(userIDList, new V2TIMValueCallback<List>() {  @Override  public void onSuccess(List v2TIMFriendOperationResults) {    // 解除拉黑成功  }
@Override public void onError(int code, String desc) { // 解除拉黑失败 }});
// 监听黑名单列表删除通知V2TIMManager.getFriendshipManager().addFriendListener(new V2TIMFriendshipListener() { @Override public void onBlackListDeleted(List userList) { // 黑名单列表删除通知 }});
// 解除拉黑[[V2TIMManager sharedInstance] deleteFromBlackList:@[@"user1", @"user2"] succ:^(NSArray *resultList) {    // 解除拉黑成功} fail:^(int code, NSString *desc) {    // 解除拉黑失败}];
// 监听黑名单列表删除通知[[V2TIMManager sharedInstance] addFriendListener:self];- (void)onBlackListDeleted:(NSArray*)userIDList { // 黑名单列表删除通知}
template class ValueCallback final : public V2TIMValueCallback {public:    using SuccessCallback = std::function;    using ErrorCallback = std::function;
ValueCallback() = default; ~ValueCallback() override = default;
void SetCallback(SuccessCallback success_callback, ErrorCallback error_callback) { success_callback_ = std::move(success_callback); error_callback_ = std::move(error_callback); }
void OnSuccess(const T& value) override { if (success_callback_) { success_callback_(value); } } void OnError(int error_code, const V2TIMString& error_message) override { if (error_callback_) { error_callback_(error_code, error_message); } }
private: SuccessCallback success_callback_; ErrorCallback error_callback_;};
V2TIMStringVector userIDList;userIDList.PushBack(u8"user1");userIDList.PushBack(u8"user2");
auto callback = new ValueCallback{};callback->SetCallback( [=](const V2TIMFriendOperationResultVector& friendOperationResultList) { // 解除拉黑成功 delete callback; }, [=](int error_code, const V2TIMString& error_message) { // 解除拉黑失败 delete callback; });
V2TIMManager::GetInstance()->GetFriendshipManager()->DeleteFromBlackList(userIDList, callback);
// 监听黑名单列表删除通知class FriendshipListener final : public V2TIMFriendshipListener {public: void OnBlackListAdded(const V2TIMFriendInfoVector& infoList) override { // 黑名单列表删除通知 } // 其他成员 ...};// 添加关系链事件监听器,注意在移除监听器之前需要保持 friendshipListener 的生命期,以免接收不到事件回调FriendshipListener friendshipListener;V2TIMManager::GetInstance()->GetFriendshipManager()->AddFriendListener(&friendshipListener);

获取黑名单列表

您可以通过 getBlackList (Android / iOS & Mac / Windows) 查看已拉黑多少用户,并对黑名单人员进行管理。示例代码如下:AndroidiOS & MacWindows

V2TIMManager.getFriendshipManager().getBlackList(new V2TIMValueCallback<List>() {  @Override  public void onSuccess(List v2TIMFriendInfos) {    // 获取黑名单列表成功  }
@Override public void onError(int code, String desc) { // 获取黑名单列表失败 }});
// 获取黑名单列表[[V2TIMManager sharedInstance] getBlackList:^(NSArray *infoList) {    // 获取黑名单列表成功} fail:^(int code, NSString *desc) {    // 获取黑名单列表失败}];
template class ValueCallback final : public V2TIMValueCallback {public:    using SuccessCallback = std::function;    using ErrorCallback = std::function;
ValueCallback() = default; ~ValueCallback() override = default;
void SetCallback(SuccessCallback success_callback, ErrorCallback error_callback) { success_callback_ = std::move(success_callback); error_callback_ = std::move(error_callback); }
void OnSuccess(const T& value) override { if (success_callback_) { success_callback_(value); } } void OnError(int error_code, const V2TIMString& error_message) override { if (error_callback_) { error_callback_(error_code, error_message); } }
private: SuccessCallback success_callback_; ErrorCallback error_callback_;};
auto callback = new ValueCallback{};callback->SetCallback( [=](const V2TIMFriendInfoVector& friendInfoList) { // 获取黑名单列表成功 delete callback; }, [=](int error_code, const V2TIMString& error_message) { // 获取黑名单列表失败 delete callback; });
V2TIMManager::GetInstance()->GetFriendshipManager()->GetBlackList(callback);



对即时通讯IM解决方案有疑惑?想了解解决方案收费? 联系解决方案专家

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?