TIMProfileGetUserProfileList
获取指定用户列表的个人资料。
原型
TIM_DECL int TIMProfileGetUserProfileList(const char* json_get_user_profile_list_param, TIMCommCallback cb, const void* user_data);
参数
参数 | 类型 | 含义 |
json_get_user_profile_list_param | const char* | 获取指定用户列表的用户资料接口参数的 JSON 字符串 |
cb | TIMCommCallback | 获取指定用户列表的用户资料成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | const void* | 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理 |
返回值
类型 | 含义 |
int | 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult |
说明
可以通过该接口获取任何人的个人资料,包括自己的个人资料。
示例
Json::Value json_get_user_profile_list_param;json_get_user_profile_list_param[kTIMFriendShipGetProfileListParamForceUpdate] = false;json_get_user_profile_list_param[kTIMFriendShipGetProfileListParamIdentifierArray].append("user1");json_get_user_profile_list_param[kTIMFriendShipGetProfileListParamIdentifierArray].append("user2");int ret = TIMProfileGetUserProfileList(json_get_user_profile_list_param.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_params, const void* user_data) {if (ERR_SUCC != code) {// 获取资料列表失败return;}}, nullptr);
TIMProfileModifySelfUserProfile
修改自己的个人资料。
原型
TIM_DECL int TIMProfileModifySelfUserProfile(const char* json_modify_self_user_profile_param, TIMCommCallback cb, const void* user_data);
参数
参数 | 类型 | 含义 |
json_modify_self_user_profile_param | const char* | 修改自己的资料接口参数的 JSON 字符串 |
cb | TIMCommCallback | 修改自己的资料成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | const void* | 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理 |
返回值
类型 | 含义 |
int | 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult |
说明
修改自己的资料时,目前支持修改的字段请参考 UserProfileItem,一次可更新多个字段。修改自定义字段时填入的 key 值可以添加
Tag_Profile_Custom_
前缀,也可以不添加Tag_Profile_Custom_
前缀,当不添加时,SDK 内部会自动添加该前缀。示例
Json::Value modify_item;modify_item[kTIMUserProfileItemNickName] = "change my nick name"; // 修改昵称modify_item[kTIMUserProfileItemGender] = kTIMGenderType_Female; // 修改性别modify_item[kTIMUserProfileItemAddPermission] = kTIMProfileAddPermission_NeedConfirm; // 修改添加好友权限Json::Value json_user_profile_item_custom;json_user_profile_item_custom[kTIMUserProfileCustemStringInfoKey] = "Str"; // 修改个人资料自定义字段 " Str " 的值json_user_profile_item_custom[kTIMUserProfileCustemStringInfoValue] = "my define data";modify_item[kTIMUserProfileItemCustomStringArray].append(json_user_profile_item_custom);int ret = TIMProfileModifySelfUserProfile(modify_item.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_params, const void* user_data) {if (ERR_SUCC != code) {// 修改自己的个人资料失败return;}}, nullptr);
TIMGetUserStatus
查询用户状态 (从 6.3 版本开始支持)
原型
TIM_DECL int TIMGetUserStatus(const char *json_identifier_array, TIMCommCallback cb, const void* user_data);
参数
参数 | 类型 | 含义 |
json_identifier_array | const char* | 用户 ID 列表 |
cb | TIMCommCallback | 查询用户状态成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | const void* | 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理 |
返回值
类型 | 含义 |
int | 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult |
说明
如果您想查询自己的自定义状态,您只需要传入自己的 userID 即可。
示例
json::Array json_array;json_array.push_back("user1");json_array.push_back("user2");TIMGetUserStatus(json::Serialize(json_array).c_str(), [](int32_t code, const char* desc, const char* json_param,const void* user_data) {if (ERR_SUCC != code) {// 查询用户状态失败return;}}, nullptr);
TIMSetSelfStatus
设置自己的状态 (从 6.3 版本开始支持)
原型
TIM_DECL int TIMSetSelfStatus(const char *json_current_user_status, TIMCommCallback cb, const void* user_data);
参数
参数 | 类型 | 含义 |
json_current_user_status | const char* | 待设置的自定义状态 |
cb | TIMCommCallback | 设置自己的状态成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | const void* | 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理 |
返回值
类型 | 含义 |
int | 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult |
说明
该接口只支持设置自己的自定义状态,即 kTIMUserStatusCustomStatus 字段。
示例
json::Object json_current_user_status;json_current_user_status[kTIMUserStatusCustomStatus] = "custom status";TIMSetSelfStatus(json::Serialize(json_current_user_status).c_str(), [](int32_t code, const char* desc, const char* json_param,const void* user_data) {if (ERR_SUCC != code) {// 设置自己的状态失败return;}}, nullptr);
TIMSubscribeUserStatus
订阅用户状态 (从 6.3 版本开始支持)
原型
TIM_DECL int TIMSubscribeUserStatus(const char *json_identifier_array, TIMCommCallback cb, const void* user_data);
参数
参数 | 类型 | 含义 |
json_identifier_array | const char* | 待订阅的用户 ID 列表 |
cb | TIMCommCallback | 订阅用户状态成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | const void* | 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理 |
返回值
类型 | 含义 |
int | 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult |
说明
当成功订阅用户状态后,当对方的状态(包含在线状态、自定义状态)发生变更后,您可以通过 TIMSetUserStatusChangedCallback 注册回调来感知。
如果您需要订阅好友列表的状态,您只需要在控制台上打开开关即可,无需调用该接口。
该接口不支持订阅自己,您可以通过 TIMSetUserStatusChangedCallback 注册回调来感知自身的自定义状态的变更。
订阅列表有个数限制,超过限制后,会自动淘汰最先订阅的用户。
示例
json::Array json_array;json_array.push_back("user1");json_array.push_back("user2");TIMSubscribeUserStatus(json::Serialize(json_array).c_str(), [](int32_t code, const char* desc, const char* json_param,const void* user_data) {if (ERR_SUCC != code) {// 订阅用户状态失败return;}}, nullptr);
TIMUnsubscribeUserStatus
取消订阅用户状态 (从 6.3 版本开始支持)
原型
TIM_DECL int TIMUnsubscribeUserStatus(const char *json_identifier_array, TIMCommCallback cb, const void* user_data);
参数
参数 | 类型 | 含义 |
json_identifier_array | const char* | 取消订阅的用户 ID 列表 |
cb | TIMCommCallback | 订阅用户状态成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | const void* | 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理 |
返回值
类型 | 含义 |
int | 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult |
说明
当 json_identifier_array 为空时,取消当前所有的订阅。
示例
json::Array json_array;json_array.push_back("user1");json_array.push_back("user2");TIMUnsubscribeUserStatus(json::Serialize(json_array).c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {if (ERR_SUCC != code) {// 取消订阅用户状态失败return;}}, nullptr);