SmartAudio/package/libs/libyunxin/lib/include/api/nim_team.h

495 lines
25 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/** @file nim_team.h
* @brief 群组 接口头文件
* @copyright (c) 2015-2017, NetEase Inc. All rights reserved
* @author Harrison
* @date 2015/2/1
*/
#ifndef NIM_SDK_DLL_API_NIM_TEAM_H_
#define NIM_SDK_DLL_API_NIM_TEAM_H_
#include "nim_sdk_dll.h"
#include "../export_headers/nim_team_def.h"
#ifdef __cplusplus
extern"C"
{
#endif
/** @fn void nim_team_reg_team_event_cb(const char *json_extension, nim_team_event_cb_func cb, const void *user_data)
* (全局回调)统一注册接收群通知回调函数(收到的群通知通过此接口广播)
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 群通知的回调函数, nim_team_event_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_team_reg_team_event_cb(const char *json_extension, nim_team_event_cb_func cb, const void *user_data);
/** @fn void nim_team_create_team_async(const char *team_info, const char *jsonlist_uids, const char *invitation_postscript, const char *json_extension, nim_team_opt_cb_func cb, const void *user_data)
* 创建群组
* @param[in] team_info team信息的json string (Keys SEE MORE nim_team_def.h『群组信息 Json Keys』 as follows)
* @param[in] jsonlist_uids uids string array 不包括自己
* @param[in] invitation_postscript 邀请附言
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 群通知的回调函数, nim_team_opt_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 810:如果创建的是高级群返回810表示邀请成功并带上tinfo
* 414:成员不足
* 801:成员数超限制
* 404:成员中有非法用户
*/
NIM_SDK_DLL_API void nim_team_create_team_async(const char *team_info,
const char *jsonlist_uids,
const char *invitation_postscript,
const char *json_extension,
nim_team_opt_cb_func cb,
const void *user_data);
/** @fn void nim_team_invite_async(const char *tid, const char *jsonlist_uids, const char *invitation_postscript, const char *json_extension, nim_team_opt_cb_func cb, const void *user_data)
* 邀请
* @param[in] tid 群组id
* @param[in] jsonlist_uids uids string array
* @param[in] invitation_postscript 邀请附言
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 邀请的回调函数, nim_team_opt_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 810:如果是高级群返回810表示邀请成功并带上timetag
* 404:非法用户
* 801:群人数超限
* 802:没有权限
* 803:群不存在
*/
NIM_SDK_DLL_API void nim_team_invite_async(const char *tid,
const char *jsonlist_uids,
const char *invitation_postscript,
const char *json_extension,
nim_team_opt_cb_func cb,
const void *user_data);
/** @fn void nim_team_kick_async(const char *tid, const char *jsonlist_uids, const char *json_extension, nim_team_opt_cb_func cb, const void *user_data)
* 踢人
* @param[in] tid 群组id
* @param[in] jsonlist_uids uids string array
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 踢人的回调函数, nim_team_opt_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 403:被踢的是管理员或群主
* 404:非法用户
* 801:群人数超限
* 802:没有权限
* 803:群不存在
*/
NIM_SDK_DLL_API void nim_team_kick_async(const char *tid,
const char *jsonlist_uids,
const char *json_extension,
nim_team_opt_cb_func cb,
const void *user_data);
/** @fn void nim_team_leave_async(const char *tid, const char *json_extension, nim_team_opt_cb_func cb, const void *user_data)
* 离开群
* @param[in] tid 群组id
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 离开群的回调函数, nim_team_opt_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 803:群不存在
* 804:用户不在群里
*/
NIM_SDK_DLL_API void nim_team_leave_async(const char *tid,
const char *json_extension,
nim_team_opt_cb_func cb,
const void *user_data);
/** @fn void nim_team_dismiss_async(const char *tid, const char *json_extension, nim_team_opt_cb_func cb, const void *user_data)
* 解散群
* @param[in] tid 群组id
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 解散群的回调函数, nim_team_opt_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 802:没有权限
* 803:群不存在
*/
NIM_SDK_DLL_API void nim_team_dismiss_async(const char *tid,
const char *json_extension,
nim_team_opt_cb_func cb,
const void *user_data);
/** @fn void nim_team_update_team_info_async(const char *tid, const char *json_info, const char *json_extension, nim_team_opt_cb_func cb, const void *user_data)
* 更新群信息
* @param[in] tid 群组id
* @param[in] json_info Json string array (Keys SEE MORE `nim_team_def.h` 『群组信息 Json Keys』 目前只支持更新群名称群id必需填)
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 更新群信息的回调函数, nim_team_opt_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 802:没有权限
* 803:群不存在
*/
NIM_SDK_DLL_API void nim_team_update_team_info_async(const char *tid,
const char *json_info,
const char *json_extension,
nim_team_opt_cb_func cb,
const void *user_data);
/** @fn void nim_team_apply_join_async(const char *tid, const char *reason, const char *json_extension, nim_team_opt_cb_func cb, const void *user_data)
* 申请入群
* @param[in] tid 群组id
* @param[in] reason 附言
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 申请入群的回调函数, nim_team_opt_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 802:群验证方式为拒绝所有人申请
* 808:申请成功,等待验证
* 809:已经在群里
* 801:人数限制
* 803:群不存在
* 805:群类型不对
*/
NIM_SDK_DLL_API void nim_team_apply_join_async(const char *tid,
const char *reason,
const char *json_extension,
nim_team_opt_cb_func cb,
const void *user_data);
/** @fn void nim_team_pass_join_apply_async(const char *tid, const char *applicant_id, const char *json_extension, nim_team_opt_cb_func cb, const void *user_data)
* 同意入群申请
* @param[in] tid 群组id
* @param[in] applicant_id 申请者id
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 同意入群申请的回调函数, nim_team_opt_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 509:操作已失效
* 809:已经在群里
* 801:人数限制
* 802:没有权限
* 803:群不存在
* 805:群类型不对
*/
NIM_SDK_DLL_API void nim_team_pass_join_apply_async(const char *tid,
const char *applicant_id,
const char *json_extension,
nim_team_opt_cb_func cb,
const void *user_data);
/** @fn void nim_team_reject_join_apply_async(const char *tid, const char *applicant_id, const char *reason, const char *json_extension, nim_team_opt_cb_func cb, const void *user_data)
* 拒绝入群申请
* @param[in] tid 群组id
* @param[in] applicant_id 申请者id
* @param[in] reason 附言
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 拒绝入群申请的回调函数, nim_team_opt_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功,如果用户处于申请状态则会通知申请用户被拒绝
* 509:操作已失效
* 802:没有权限
* 803:群不存在
* 805:群类型不对
*/
NIM_SDK_DLL_API void nim_team_reject_join_apply_async(const char *tid,
const char *applicant_id,
const char *reason,
const char *json_extension,
nim_team_opt_cb_func cb,
const void *user_data);
/** @fn void nim_team_add_managers_async(const char *tid, const char *jsonlist_admin_ids, const char *json_extension, nim_team_opt_cb_func cb, const void *user_data)
* 添加管理员
* @param[in] tid 群组id
* @param[in] jsonlist_admin_ids uids string array
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 添加管理员的回调函数, nim_team_opt_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 802:没有权限
* 803:群不存在
* 805:群类型不对
*/
NIM_SDK_DLL_API void nim_team_add_managers_async(const char *tid,
const char *jsonlist_admin_ids,
const char *json_extension,
nim_team_opt_cb_func cb,
const void *user_data);
/** @fn void nim_team_remove_managers_async(const char *tid, const char *jsonlist_admin_ids, const char *json_extension, nim_team_opt_cb_func cb, const void *user_data)
* 删除管理员
* @param[in] tid 群组id
* @param[in] jsonlist_admin_ids uids string array
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 删除管理员的回调函数, nim_team_opt_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 802:没有权限
* 803:群不存在
* 805:群类型不对
*/
NIM_SDK_DLL_API void nim_team_remove_managers_async(const char *tid,
const char *jsonlist_admin_ids,
const char *json_extension,
nim_team_opt_cb_func cb,
const void *user_data);
/** @fn void nim_team_transfer_team_async(const char *tid, const char *new_owner, bool is_leave, const char *json_extension, nim_team_opt_cb_func cb, const void *user_data)
* 移交群主
* @param[in] tid 群组id
* @param[in] new_owner 移交对象uid
* @param[in] is_leave 是否同时退出群
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 移交群主的回调函数, nim_team_opt_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 802:没有权限
* 803:群不存在
* 805:群类型不对
* 806:群数量上限
*/
NIM_SDK_DLL_API void nim_team_transfer_team_async(const char *tid,
const char *new_owner,
bool is_leave,
const char *json_extension,
nim_team_opt_cb_func cb,
const void *user_data);
/** @fn void nim_team_update_my_property_async(const char *info, const char *json_extension, nim_team_opt_cb_func cb, const void *user_data)
* 更新自己的群属性
* @param[in] info json string 群组成员信息,包含tid和需要修改的字段目前支持修改kNIMTeamUserKeyNick、kNIMTeamUserKeyBits、kNIMTeamUserKeyCustom三个字段 (Keys SEE MORE `nim_team_def.h` 『群组属性 Json Keys』
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 更新自己的群属性的回调函数, nim_team_opt_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 803:群不存在
* 804:不在群里
* 805:群类型不对
*/
NIM_SDK_DLL_API void nim_team_update_my_property_async(const char *info,
const char *json_extension,
nim_team_opt_cb_func cb,
const void *user_data);
/** @fn void nim_team_update_other_nick_async(const char *info, const char *json_extension, nim_team_opt_cb_func cb, const void *user_data)
* 修改别人的群昵称
* @param[in] info json string tlist 包含tid,accid,nick字段 (Keys SEE MORE `nim_team_def.h` 『群组属性 Json Keys』
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 修改别人的群昵称的回调函数, nim_team_opt_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 802:没有权限
* 803:群不存在
* 804:不在群里
* 805:群类型不对
*/
NIM_SDK_DLL_API void nim_team_update_other_nick_async(const char *info,
const char *json_extension,
nim_team_opt_cb_func cb,
const void *user_data);
/** @fn void nim_team_accept_invitation_async(const char *tid, const char *invitor, const char *json_extension, nim_team_opt_cb_func cb, const void *user_data)
* 接受邀请
* @param[in] tid 群组id
* @param[in] invitor 邀请者id
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 接受邀请的回调函数, nim_team_opt_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 802:没有权限
* 803:群不存在
* 805:群类型不对
*/
NIM_SDK_DLL_API void nim_team_accept_invitation_async(const char *tid,
const char *invitor,
const char *json_extension,
nim_team_opt_cb_func cb,
const void *user_data);
/** @fn void nim_team_reject_invitation_async(const char *tid, const char *invitor, const char *reason, const char *json_extension, nim_team_opt_cb_func cb, const void *user_data)
* 拒绝邀请
* @param[in] tid 群组id
* @param[in] invitor 邀请者id
* @param[in] reason 附言
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 拒绝邀请的回调函数, nim_team_opt_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 802:没有权限
* 803:群不存在
* 805:群类型不对
*/
NIM_SDK_DLL_API void nim_team_reject_invitation_async(const char *tid,
const char *invitor,
const char *reason,
const char *json_extension,
nim_team_opt_cb_func cb,
const void *user_data);
/** @fn void nim_team_query_all_my_teams_async(const char *json_extension, nim_team_query_all_my_teams_cb_func cb, const void *user_data)
* 查询本地所有群(有效群-群有效AND我在群里-
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 查询所有群的回调函数, nim_team_query_all_my_teams_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_team_query_all_my_teams_async(const char *json_extension,
nim_team_query_all_my_teams_cb_func cb,
const void *user_data);
/** @fn void nim_team_query_all_my_teams_info_async(const char *json_extension, nim_team_query_all_my_teams_info_cb_func cb, const void *user_data)
* 查询本地所有群信息(默认查询有效群-群有效AND我在群里-
* @param[in] json_extension 扩展参数,可以条件获取缓存中有的无效群(我已经不在里面的群OR解散的群)SDK2.7.0以上支持,例如 "{"include_invalid" : true}"参数可查询nim_team_def.h 搜索本地群组相关信息扩展参数
* @param[in] cb 查询所有群信息的回调函数, nim_team_query_all_my_teams_info_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_team_query_all_my_teams_info_async(const char *json_extension,
nim_team_query_all_my_teams_info_cb_func cb,
const void *user_data);
#if NIMAPI_UNDER_WIN_DESKTOP_ONLY
/** @fn void nim_team_query_my_all_member_infos_async(const char *json_extension, nim_team_query_my_all_member_infos_cb_func cb, const void *user_data)
* 查询本地所有群里我的成员信息使用场景获取了所有群列表后需要查询自己在每个群里自己的成员信息使用成员信息里的bits字段可以判断当某个群发来消息后是否做消息通知
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 查询我的所有群里我的成员信息的回调函数, nim_team_query_my_all_member_infos_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_team_query_my_all_member_infos_async(const char *json_extension,
nim_team_query_my_all_member_infos_cb_func cb,
const void *user_data);
#endif
/** @fn void nim_team_query_team_members_async(const char *tid, bool include_user_info, const char *json_extension, nim_team_query_team_members_cb_func cb, const void *user_data)
* 查询群成员(默认查询有效群成员-在群里-
* @param[in] tid 群组id
* @param[in] include_user_info 返回结果中是否包含成员信息(关系到如何解析返回的json)
* @param[in] json_extension 扩展参数如果include_user_info为true可以条件获取缓存中有的无效群成员不在群里了SDK2.8.0以上支持,例如 "{"include_invalid" : true}"参数可查询nim_team_def.h 搜索本地群组相关信息扩展参数
* @param[in] cb 查询群成员的回调函数, nim_team_query_team_members_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 406:没有变化
* 802:没有权限
*/
NIM_SDK_DLL_API void nim_team_query_team_members_async(const char *tid,
bool include_user_info,
const char *json_extension,
nim_team_query_team_members_cb_func cb,
const void *user_data);
/** @fn void nim_team_query_team_member_async(const char *tid, const char *user_id, const char *json_extension, nim_team_query_team_member_cb_func cb, const void *user_data)
* 查询(单个)群成员信息(如果缓存中有数据,支持有效或无效成员)
* @param[in] tid 群组id
* @param[in] user_id 群成员id
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 查询群成员的回调函数, nim_team_query_team_member_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_team_query_team_member_async(const char *tid,
const char *user_id,
const char *json_extension,
nim_team_query_team_member_cb_func cb,
const void *user_data);
/** @fn char *nim_team_query_team_member_block(const char *tid, const char *user_id)
* 查询(单个)群成员信息(如果缓存中有数据,支持有效或无效成员)(同步接口堵塞NIM内部线程谨慎使用)
* @param[in] tid 群组id
* @param[in] user_id 群成员id
* @return char * 返回群成员信息Json char,需要上层调用nim_global.h提供的内存释放接口释放。
*/
NIM_SDK_DLL_API char *nim_team_query_team_member_block(const char *tid, const char *user_id);
/** @fn void nim_team_query_team_info_async(const char *tid, const char *json_extension, nim_team_query_team_info_cb_func cb, const void *user_data)
* 本地查询群信息(如果缓存中有数据,支持有效或无效群)
* @param[in] tid 群组id
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 查询群信息的回调函数, nim_team_query_team_info_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_team_query_team_info_async(const char *tid,
const char *json_extension,
nim_team_query_team_info_cb_func cb,
const void *user_data);
/** @fn char *nim_team_query_team_info_block(const char *tid)
* 本地查询群信息(如果缓存中有数据,支持有效或无效群)(同步接口堵塞NIM内部线程谨慎使用)
* @param[in] tid 群组id
* @return char * 返回群信息Json char, 需要上层调用nim_global.h提供的内存释放接口释放。
*/
NIM_SDK_DLL_API char *nim_team_query_team_info_block(const char *tid);
/** @fn void nim_team_query_team_info_online_async(const char *tid, const char *json_extension, nim_team_opt_cb_func cb, const void *user_data)
* 在线查询群信息(从服务器获取)
* @param[in] tid 群组id
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 获取群信息的回调函数, nim_team_opt_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 803:群不存在
*/
NIM_SDK_DLL_API void nim_team_query_team_info_online_async(const char *tid,
const char *json_extension,
nim_team_opt_cb_func cb,
const void *user_data);
/** @fn void nim_team_mute_member_async(const char *tid, const char *member_id, bool set_mute, const char *json_extension, nim_team_opt_cb_func cb, const void *user_data)
* 对群成员禁言/解除禁言
* @param[in] tid 群组id
* @param[in] member_id 群成员id
* @param[in] set_mute 禁言(true)、解除禁言(false)
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 拒绝邀请的回调函数, nim_team_opt_cb_func回调函数定义见nim_team_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 404:参数错误
* 803:群不存在
* 802:没有权限
*/
NIM_SDK_DLL_API void nim_team_mute_member_async(const char *tid,
const char *member_id,
bool set_mute,
const char *json_extension,
nim_team_opt_cb_func cb,
const void *user_data);
/** @fn void nim_team_query_mute_list_online_async(const char *tid, const char *json_extension, nim_team_query_mute_list_cb_func cb, const void *user_data)
* 获取群禁言成员列表
* @param[in] tid 群组id
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 拒绝邀请的回调函数
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 803:群不存在
* 802:没有权限
*/
NIM_SDK_DLL_API void nim_team_query_mute_list_online_async(const char *tid,
const char *json_extension,
nim_team_query_mute_list_cb_func cb,
const void *user_data);
#ifdef __cplusplus
};
#endif //__cplusplus
#endif //NIM_SDK_DLL_API_NIM_TEAM_H_