当前页面展示的文档已停止维护,给您带来不便请谅解,单击链接可跳转至当前产品介绍页面 >>

用户关系托管

更新时间: 2025/04/29 09:37:32

用户关系托管

SDK 提供了用户好友关系管理,以及对用户会话的消息设置。在网易云信中,不是好友也允许聊天。好友关系如果不托管给网易云信,开发者需要自己在应用服务器维护。

添加/被添加,请求/被请求,删除/被删除的通知以及多端同步等通知通过注册的好友数据变更通知回调告知应用程序:

cvoid nim_friend_reg_changed_cb(const char *json_extension, nim_friend_change_cb_func cb, const void *user_data);

好友关系

  • 获取好友列表
cvoid nim_friend_get_list(const char *json_extension, nim_friend_get_list_cb_func cb, const void *user_data);
  • 好友请求

    好友请求包括请求添加好友以及同意/拒绝好友请求两种。

    好友验证包括直接添加为好友(kNIMVerifyTypeAdd 不需要对方验证),请求添加好友(kNIMVerifyTypeAsk 需要对方验证),并且可以携带客户端自定义消息完成附加功能,例如添加好友附言功能。

    回调函数告知接口调用是否成功,以不需要验证方式的好友请求为例:

    cvoid CallbackFriendOpt(int res_code, const char *json_extension, const void *user_data)
    {
        //处理操作结果
    }
    
    void foo()
    {
        nim_friend_request("id", kNIMVerifyTypeAdd, NULL, NULL, &CallbackFriendOpt, NULL);
    }
    

    如果好友验证方式为需要验证(kNIMVerifyTypeAsk),对方收到消息之后,可以选择同意(kNIMVerifyTypeAgree)或者拒绝好友请求(kNIMVerifyTypeReject),此时同样调用nim_friend_request接口,传入拒绝对象的ID和验证回复类型即可。

  • 删除好友

    cvoid nim_friend_delete(const char *accid, const char *json_extension, nim_friend_opt_cb_func cb, const void *user_data);
    
  • 更新资料

    cvoid CallbackFriendOpt(int res_code, const char *json_extension, const void *user_data)
    {
        //处理操作结果
    }
    
    void foo()
    {
        //更新好友备注名
        Json::Value friend_profile_json;
        friend_profile_json[kNIMFriendKeyAccid] = "accid";
        friend_profile_json[kNIMFriendKeyAlias] = "alias_name";
        Json::FastWriter fw;
    
        nim_friend_update(fw.write(friend_profile_json).c_str(), NULL, &CallbackFriendOpt, NULL);
    }
    
  • 查询是否为好友

    nim_friend_query_friendship_block在本地缓存数据中查询指定账号是否为自己的好友。

黑名单

网易云信中,黑名单和用户关系是互相独立的,即修改用户关系不会影响黑名单关系,同时,修改黑名单也不会对用户关系进行操作。

黑名单列表有本地缓存,缓存会在手动/自动登录后与服务器自动进行同步更新。通过注册用户关系变更通知回调nim_user_reg_special_relationship_changed_cb获取当前数据变化。

  • 获取黑名单

    cvoid nim_user_get_mute_blacklist(const char *json_extension, nim_user_sync_muteandblacklist_cb_func cb, const void *user_data);
    
  • 加入/移出黑名单

    cvoid nim_user_set_black(const char *accid, bool set_black, const char *json_extension, nim_user_opt_cb_func cb, const void *user_data);
    

消息提醒

网易云信中,可以单独设置是否开启某个用户的消息提醒,即对某个用户静音。静音关系和用户关系是互相独立的,修改用户关系不会影响静音关系,同时,修改静音关系也不会对用户关系进行操作。

静音名单列表有本地缓存,缓存会在手动/自动登录后与服务器自动进行同步更新。通过注册用户关系变更通知回调nim_user_special_relationship_change_cb_func获取当前数据变化。

  • 加入/移除静音单列表

    cvoid nim_user_set_mute(const char *accid, bool set_mute, const char *json_extension, nim_user_opt_cb_func cb, const void *user_data);
    
  • 获取静音名单列表

    cvoid nim_user_get_mute_blacklist(const char *json_extension, nim_user_sync_muteandblacklist_cb_func cb, const void *user_data);
    
此文档是否对你有帮助?
有帮助
去反馈
  • 用户关系托管
  • 好友关系
  • 黑名单
  • 消息提醒