IM SDK 回调

最近更新时间:2019-08-30 18:50:21

IM SDK 事件回调

TIMRecvNewMsgCallback

新消息回调。

原型

typedef void (*TIMRecvNewMsgCallback)(const char* json_msg_array, const void* user_data);

参数

参数 类型 含义
json_msg_array const char* 新消息数组
user_data const void* IM SDK 负责透传的用户自定义数据,未做任何处理
说明:

此回调可以获取新接收的消息数组。注意消息内的元素也是一个数组。每个元素的定义由elem_type字段决定。

示例一、消息数组解析示例

Json::Value json_value_msgs; // 解析消息
Json::Reader reader;
if (!reader.parse(json_msg_array, json_value_msgs)) {
    printf("reader parse failure!%s", reader.getFormattedErrorMessages().c_str());
    return;
}
for (Json::ArrayIndex i = 0; i < json_value_msgs.size(); i++) {  // 遍历 Message
    Json::Value& json_value_msg = json_value_msgs[i];
    Json::Value& elems = json_value_msg[kTIMMsgElemArray];
    for (Json::ArrayIndex m = 0; m < elems.size(); m++) {   // 遍历 Elem
        Json::Value& elem = elems[i];

        uint32_t elem_type = elem[kTIMElemType].asUInt();
        if (elem_type == TIMElemType::kTIMElem_Text) {  // 文本

        } else if (elem_type == TIMElemType::kTIMElem_Sound) {  // 声音

        } else if (elem_type == TIMElemType::kTIMElem_File) {  // 文件

        } else if (elem_type == TIMElemType::kTIMElem_Image) { // 图片

        } else if (elem_type == TIMElemType::kTIMElem_Custom) { // 自定义元素

        } else if (elem_type == TIMElemType::kTIMElem_GroupTips) { // 群组系统消息

        } else if (elem_type == TIMElemType::kTIMElem_Face) { // 表情

        } else if (elem_type == TIMElemType::kTIMElem_Location) { // 位置

        } else if (elem_type == TIMElemType::kTIMElem_GroupReport) { // 群组系统通知

        } else if (elem_type == TIMElemType::kTIMElem_Video) { // 视频

        }
    }
}

示例二、返回一个文本消息的 JSON 示例。JSON Key 请参考 MessageTextElem

[
   {
      "message_client_time" : 1551080111,
      "message_conv_id" : "user2",
      "message_conv_type" : 1,
      "message_elem_array" : [
         {
            "elem_type" : 0,
            "text_elem_content" : "123213213"
         }
      ],
      "message_is_from_self" : true,
      "message_is_read" : true,
      "message_rand" : 2130485001,
      "message_sender" : "user1",
      "message_seq" : 1,
      "message_server_time" : 1551080111,
      "message_status" : 2
   }
]

示例三、返回一个群通知消息的 JSON 示例。JSON Key 请参考 MessageGroupReportElem

[
   {
      "message_client_time" : 1551344977,
      "message_conv_id" : "",
      "message_conv_type" : 3,
      "message_elem_array" : [
         {
            "elem_type" : 9,
            "group_report_elem_group_id" : "first group id",
            "group_report_elem_group_name" : "first group name",
            "group_report_elem_msg" : "",
            "group_report_elem_op_group_memberinfo" : {
               "group_member_info_custom_info" : {},
               "group_member_info_identifier" : "user1",
               "group_member_info_join_time" : 0,
               "group_member_info_member_role" : 0,
               "group_member_info_msg_flag" : 0,
               "group_member_info_msg_seq" : 0,
               "group_member_info_name_card" : "",
               "group_member_info_shutup_time" : 0
            },
            "group_report_elem_op_user" : "",
            "group_report_elem_platform" : "Windows",
            "group_report_elem_report_type" : 6,
            "group_report_elem_user_data" : ""
         }
      ],
      "message_is_from_self" : false,
      "message_is_read" : true,
      "message_rand" : 2207687390,
      "message_sender" : "@TIM#SYSTEM",
      "message_seq" : 1,
      "message_server_time" : 1551344977,
      "message_status" : 2
   }
]

示例四、返回一个群提示消息的 JSON 示例。JSON Key 请参考 MessageGroupTipsElem

[
   {
      "message_client_time" : 1551412814,
      "message_conv_id" : "first group id",
      "message_conv_type" : 2,
      "message_elem_array" : [
         {
            "elem_type" : 6,
            "group_tips_elem_changed_group_memberinfo_array" : [],
            "group_tips_elem_group_change_info_array" : [
               {
                  "group_tips_group_change_info_flag" : 10,
                  "group_tips_group_change_info_value" : "first group name to other name"
               }
            ],
            "group_tips_elem_group_id" : "first group id",
            "group_tips_elem_group_name" : "first group name to other name",
            "group_tips_elem_member_change_info_array" : [],
            "group_tips_elem_member_num" : 0,
            "group_tips_elem_op_group_memberinfo" : {
               "group_member_info_custom_info" : {},
               "group_member_info_identifier" : "user1",
               "group_member_info_join_time" : 0,
               "group_member_info_member_role" : 0,
               "group_member_info_msg_flag" : 0,
               "group_member_info_msg_seq" : 0,
               "group_member_info_name_card" : "",
               "group_member_info_shutup_time" : 0
            },
            "group_tips_elem_op_user" : "user1",
            "group_tips_elem_platform" : "Windows",
            "group_tips_elem_time" : 0,
            "group_tips_elem_tip_type" : 6,
            "group_tips_elem_user_array" : []
         }
      ],
      "message_is_from_self" : false,
      "message_is_read" : true,
      "message_rand" : 1,
      "message_sender" : "@TIM#SYSTEM",
      "message_seq" : 1,
      "message_server_time" : 1551412814,
      "message_status" : 2
   },
]

TIMMsgReadedReceiptCallback

消息已读回执回调。

原型

typedef void (*TIMMsgReadedReceiptCallback)(const char* json_msg_readed_receipt_array, const void* user_data);

参数

参数 类型 含义
json_msg_readed_receipt_array const char* 消息已读回执数组
user_data const void* IM SDK 负责透传的用户自定义数据,未做任何处理

示例

void MsgReadedReceiptCallback(const char* json_msg_readed_receipt_array, const void* user_data) {
    Json::Value json_value_receipts;
    Json::Reader reader;
    if (!reader.parse(json_msg_readed_receipt_array, json_value_receipts)) {
        // JSON 解析失败
        return;
    }

    for (Json::ArrayIndex i = 0; i < json_value_receipts.size(); i++) {
        Json::Value& json_value_receipt = json_value_receipts[i];

        std::string convid = json_value_receipt[kTIMMsgReceiptConvId].asString();
        uint32_t conv_type = json_value_receipt[kTIMMsgReceiptConvType].asUInt();
        uint64_t timestamp = json_value_receipt[kTIMMsgReceiptTimeStamp].asUInt64();

        // 消息已读逻辑
    }
}

TIMMsgRevokeCallback

接收的消息被撤回回调。

原型

typedef void (*TIMMsgRevokeCallback)(const char* json_msg_locator_array, const void* user_data);

参数

参数 类型 含义
json_msg_locator_array const char* 消息定位符数组
user_data const void* IM SDK 负责透传的用户自定义数据,未做任何处理

示例

void MsgRevokeCallback(const char* json_msg_locator_array, const void* user_data) {
    Json::Value json_value_locators;
    Json::Reader reader;
    if (!reader.parse(json_msg_locator_array, json_value_locators)) {
        // JSON 解析失败
        return;
    }
    for (Json::ArrayIndex i = 0; i < json_value_locators.size(); i++) {
        Json::Value& json_value_locator = json_value_locators[i];

        std::string convid = json_value_locator[kTIMMsgLocatorConvId].asString();
        uint32_t conv_type = json_value_locator[kTIMMsgLocatorConvType].asUInt();
        bool isrevoke      = json_value_locator[kTIMMsgLocatorIsRevoked].asBool();
        uint64_t time      = json_value_locator[kTIMMsgLocatorTime].asUInt64();
        uint64_t seq       = json_value_locator[kTIMMsgLocatorSeq].asUInt64();
        uint64_t rand      = json_value_locator[kTIMMsgLocatorRand].asUInt64();
        bool isself        = json_value_locator[kTIMMsgLocatorIsSelf].asBool();

        // 消息撤回逻辑
    }
}

TIMMsgElemUploadProgressCallback

消息内元素相关文件上传进度回调。

原型

typedef void (*TIMMsgElemUploadProgressCallback)(const char* json_msg, uint32_t index, uint32_t cur_size, uint32_t total_size, const void* user_data);

参数

参数 类型 含义
json_msg const char* 新消息
index uint32_t 上传Elem元素在json_msg消息的下标
cur_size uint32_t 上传当前大小
total_size uint32_t 上传总大小
user_data const void* IM SDK 负责透传的用户自定义数据,未做任何处理

示例

void MsgElemUploadProgressCallback(const char* json_msg, uint32_t index, uint32_t cur_size, uint32_t total_size, const void* user_data) {
    Json::Value json_value_msg;
    Json::Reader reader;
    if (!reader.parse(json_msg, json_value_msg)) {
        // JSON 解析失败
        return;
    }
    Json::Value& elems = json_value_msg[kTIMMsgElemArray];
    if (index >= elems.size()) {
        // index 超过消息元素个数范围
        return;
    }
    uint32_t elem_type = elems[index][kTIMElemType].asUInt();
    if (kTIMElem_File ==  elem_type) {

    }
    else if (kTIMElem_Sound == elem_type) {

    }
    else if (kTIMElem_Video == elem_type) {

    }
    else if (kTIMElem_Image == elem_type) {

    }
    else {
        // 其他类型元素不符合上传要求
    }
}

TIMGroupTipsEventCallback

群事件回调。

原型

typedef void (*TIMGroupTipsEventCallback)(const char* json_group_tip_array, const void* user_data);

参数

参数 类型 含义
json_group_tip_array const char* 群提示列表
user_data const void* IM SDK 负责透传的用户自定义数据,未做任何处理

TIMConvEventCallback

会话事件回调。

原型

typedef void (*TIMConvEventCallback)(enum TIMConvEvent conv_event, const char* json_conv_array, const void* user_data);

参数

参数 类型 含义
conv_event enum TIMConvEvent 会话事件类型,请参考 TIMConvEvent
json_conv_array const char* 会话信息列表
user_data const void* IM SDK 负责透传的用户自定义数据,未做任何处理

示例:会话事件回调数据解析

void ConvEventCallback(TIMConvEvent conv_event, const char* json_conv_array, const void* user_data) {
    Json::Reader reader;
    Json::Value json_value;
    if (!reader.parse(json_conv_array, json_value)) {
        // JSON 解析失败
        return;
    }
    for (Json::ArrayIndex i = 0; i < json_value.size(); i++) { // 遍历会话类别
        Json::Value& convinfo = json_value[i];
        // 区分会话事件类型
        if (conv_event == kTIMConvEvent_Add) {

        }
        else if (conv_event == kTIMConvEvent_Del) {

        }
        else if (conv_event == kTIMConvEvent_Update) {

        }
    }
}

TIMNetworkStatusListenerCallback

网络状态回调。

原型

typedef void (*TIMNetworkStatusListenerCallback)(enum TIMNetworkStatus status, int32_t code, const char* desc, const void* user_data);

参数

参数 类型 含义
status enum TIMNetworkStatus 网络状态,请参考 TIMNetworkStatus
code int32_t 值为 ERR_SUCC 表示成功,其他值表示失败。详情请参考 错误码
desc const char* 错误描述字符串
user_data const void* IM SDK 负责透传的用户自定义数据,未做任何处理

示例:感知网络状态的回调处理

void NetworkStatusListenerCallback(TIMNetworkStatus status, int32_t code, const char* desc, const void* user_data) {
    switch(status) {
    case kTIMConnected: {
        printf("OnConnected ! user_data:0x%08x", user_data);
        break;
    }
    case kTIMDisconnected:{
        printf("OnDisconnected ! user_data:0x%08x", user_data);
        break;
    }
    case kTIMConnecting:{
        printf("OnConnecting ! user_data:0x%08x", user_data);
        break;
    }
    case kTIMConnectFailed:{
        printf("ConnectFailed code:%u desc:%s ! user_data:0x%08x", code, desc, user_data);
        break;
    }
    }
}

TIMKickedOfflineCallback

被踢下线回调。

原型

typedef void (*TIMKickedOfflineCallback)(const void* user_data);

参数

参数 类型 含义
user_data const void* IM SDK 负责透传的用户自定义数据,未做任何处理

TIMUserSigExpiredCallback

用户票据过期回调。

原型

typedef void (*TIMUserSigExpiredCallback)(const void* user_data);

参数

参数 类型 含义
user_data const void* IM SDK 负责透传的用户自定义数据,未做任何处理

TIMOnAddFriendCallback

添加好友的回调。

原型

typedef void(*TIMOnAddFriendCallback)(const char* json_identifier_array, const void* user_data);

参数

参数 类型 含义
json_identifier_array const char* 添加好友列表
user_data const void* IM SDK 负责透传的用户自定义数据,未做任何处理

示例:json_identifier_array 示例

[ "user15" ]

TIMOnDeleteFriendCallback

删除好友的回调。

原型

typedef void(*TIMOnDeleteFriendCallback)(const char* json_identifier_array, const void* user_data);

参数

参数 类型 含义
json_identifier_array const char* 删除好友列表
user_data const void* IM SDK 负责透传的用户自定义数据,未做任何处理

示例:json_identifier_array 示例

[ "user15" ]

TIMUpdateFriendProfileCallback

更新好友资料的回调。

原型

typedef void(*TIMUpdateFriendProfileCallback)(const char* json_friend_profile_update_array, const void* user_data);

参数

参数 类型 含义
json_friend_profile_update_array const char* 好友资料更新列表
user_data const void* IM SDK 负责透传的用户自定义数据,未做任何处理

示例:json_friend_profile_update_array 示例

[
   {
      "friend_profile_update_identifier" : "user4",
      "friend_profile_update_item" : {
         "friend_profile_item_group_name_array" : [ "group1", "group2" ],
         "friend_profile_item_remark" : "New Remark"
      }
   }
]

TIMFriendAddRequestCallback

好友添加请求的回调。

原型

typedef void(*TIMFriendAddRequestCallback)(const char* json_friend_add_request_pendency_array, const void* user_data);

参数

参数 类型 含义
json_friend_add_request_pendency_array const char* 好友添加请求未决信息列表
user_data const void* IM SDK 负责透传的用户自定义数据,未做任何处理

示例:json_friend_add_request_pendency_array 示例

[
   {
      "friend_add_pendency_add_source" : "AddSource_Type_android",
      "friend_add_pendency_add_wording" : "aaaa",
      "friend_add_pendency_identifier" : "v222",
      "friend_add_pendency_nick_name" : ""
   }
]

TIMLogCallback

日志回调。

原型

typedef void (*TIMLogCallback)(enum TIMLogLevel level, const char* log, const void* user_data);

参数

参数 类型 含义
level enum TIMLogLevel 日志级别,请参考 TIMLogLevel
log const char* 日子字符串
user_data const void* IM SDK 负责透传的用户自定义数据,未做任何处理

TIMMsgUpdateCallback

消息更新回调。

原型

typedef void (*TIMMsgUpdateCallback)(const char* json_msg_array, const void* user_data);

参数

参数 类型 含义
json_msg_array const char* 更新的消息数组
user_data const void* IM SDK 负责透传的用户自定义数据,未做任何处理
说明:

请参考 TIMRecvNewMsgCallback

IM SDK 接口回调

TIMCommCallback

接口回调定义。

原型

typedef void (*TIMCommCallback)(int32_t code, const char* desc, const char* json_params, const void* user_data);

参数

参数 类型 含义
code int32_t 值为 ERR_SUCC 表示成功,其他值表示失败。详情请参考 错误码
desc const char* 错误描述字符串
json_params const char* JSON 字符串,不同的接口,JSON 字符串不一样
user_data const void* IM SDK 负责透传的用户自定义数据,未做任何处理
说明:

所有回调均需判断 code 是否等于 ERR_SUC,若不等于说明接口调用失败了,具体原因可以看 code 的值以及 desc 描述。详情请参考 错误码

说明:


以下接口的回调 TIMCommCallback 参数 json_params 均为空字符串""

示例一、接口 TIMSetConfig 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 SetConfig

{
   "set_config_callback_log_level" : 2,
   "set_config_is_log_output_console" : true,
   "set_config_log_level" : 2,
   "set_config_proxy_info" : {
      "proxy_info_ip" : "",
      "proxy_info_port" : 0
   },
   "set_config_user_config" : {
      "user_config_group_getinfo_option" : {
         "get_info_option_custom_array" : [],
         "get_info_option_info_flag" : 0xffffffff,
         "get_info_option_role_flag" : 0
      },
      "user_config_group_member_getinfo_option" : {
         "get_info_option_custom_array" : [],
         "get_info_option_info_flag" : 0xffffffff,
         "get_info_option_role_flag" : 0
      },
      "user_config_is_ingore_grouptips_unread" : false,
      "user_config_is_read_receipt" : false,
      "user_config_is_sync_report" : false
   }
}

示例二、接口 TIMConvCreate 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 ConvInfo

{
   "conv_active_time" : 1551269275,
   "conv_id" : "user2",
   "conv_is_has_draft" : false,
   "conv_is_has_lastmsg" : true,
   "conv_last_msg" : {
      "message_client_time" : 1551101578,
      "message_conv_id" : "user2",
      "message_conv_type" : 1,
      "message_elem_array" : [
         {
            "elem_type" : 0,
            "text_elem_content" : "12"
         }
      ],
      "message_is_from_self" : false,
      "message_is_read" : true,
      "message_rand" : 3726251374,
      "message_sender" : "user2",
      "message_seq" : 56858,
      "message_server_time" : 1551101578,
      "message_status" : 2
   },
   "conv_owner" : "",
   "conv_type" : 1,
   "conv_unread_num" : 1
}

示例三、接口 TIMConvGetConvList 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 ConvInfo

[
   {
      "conv_active_time" : 1551269275,
      "conv_id" : "user2",
      "conv_is_has_draft" : false,
      "conv_is_has_lastmsg" : true,
      "conv_last_msg" : {
         "message_client_time" : 1551235066,
         "message_conv_id" : "user2",
         "message_conv_type" : 1,
         "message_elem_array" : [
            {
               "elem_type" : 0,
               "text_elem_content" : "ccccccccccccccccc"
            }
         ],
         "message_is_from_self" : true,
         "message_is_read" : true,
         "message_rand" : 1073033786,
         "message_sender" : "user1",
         "message_seq" : 16373,
         "message_server_time" : 1551235067,
         "message_status" : 2
      },
      "conv_owner" : "",
      "conv_type" : 1,
      "conv_unread_num" : 0
   }
]

示例四、接口 TIMMsgSendNewMsg 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 Message

{
   "message_client_time" : 1558598732,
   "message_conv_id" : "asd12341",
   "message_conv_type" : 1,
   "message_custom_int" : 0,
   "message_custom_str" : "",
   "message_elem_array" : [
      {
         "elem_type" : 0,
         "text_elem_content" : "test"
      }
   ],
   "message_is_from_self" : true,
   "message_is_online_msg" : false,
   "message_is_peer_read" : false,
   "message_is_read" : true,
   "message_priority" : 1,
   "message_rand" : 1340036983,
   "message_sender" : "test_win_01",
   "message_seq" : 20447,
   "message_server_time" : 1558598733,
   "message_status" : 2
}

示例五、接口 TIMMsgFindByMsgLocatorList 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 Message

[
   {
      "message_client_time" : 1551080111,
      "message_conv_id" : "user2",
      "message_conv_type" : 1,
      "message_elem_array" : [
         {
            "elem_type" : 0,
            "text_elem_content" : "123213213"
         }
      ],
      "message_is_from_self" : true,
      "message_is_read" : true,
      "message_rand" : 2130485001,
      "message_sender" : "user1",
      "message_seq" : 1,
      "message_server_time" : 1551080111,
      "message_status" : 2
   },
   ...
]

示例六、接口 TIMMsgGetMsgList 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 Message

[
   {
      "message_client_time" : 1551080111,
      "message_conv_id" : "user2",
      "message_conv_type" : 1,
      "message_elem_array" : [
         {
            "elem_type" : 0,
            "text_elem_content" : "123213213"
         }
      ],
      "message_is_from_self" : true,
      "message_is_read" : true,
      "message_rand" : 2130485001,
      "message_sender" : "user1",
      "message_seq" : 1,
      "message_server_time" : 1551080111,
      "message_status" : 2
   },
   ...
]

示例七、接口 TIMMsgDownloadElemToPath 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 MsgDownloadElemResult

{
  "msg_download_elem_result_current_size" : 10,
  "msg_download_elem_result_total_size" : 100
}

示例八、接口 TIMMsgBatchSend 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 MsgBatchSendResult

[
   {
      "msg_batch_send_result_code" : 0,
      "msg_batch_send_result_desc" : "",
      "msg_batch_send_result_identifier" : "test_win_05",
      "msg_batch_send_result_msg" : {
         "message_client_time" : 1558598923,
         "message_conv_id" : "test_win_05",
         "message_conv_type" : 1,
         "message_custom_int" : 0,
         "message_custom_str" : "",
         "message_elem_array" : [
            {
               "elem_type" : 0,
               "text_elem_content" : "this is batch send msgs"
            }
         ],
         "message_is_from_self" : true,
         "message_is_online_msg" : false,
         "message_is_peer_read" : false,
         "message_is_read" : true,
         "message_priority" : 1,
         "message_rand" : 673379256,
         "message_sender" : "test_win_01",
         "message_seq" : 10274,
         "message_server_time" : 1558598924,
         "message_status" : 2
      }
   },
   {
      "msg_batch_send_result_code" : 0,
      "msg_batch_send_result_desc" : "",
      "msg_batch_send_result_identifier" : "test_win_02",
      "msg_batch_send_result_msg" : {
         "message_client_time" : 1558598923,
         "message_conv_id" : "test_win_02",
         "message_conv_type" : 1,
         "message_custom_int" : 0,
         "message_custom_str" : "",
         "message_elem_array" : [
            {
               "elem_type" : 0,
               "text_elem_content" : "this is batch send msgs"
            }
         ],
         "message_is_from_self" : true,
         "message_is_online_msg" : false,
         "message_is_peer_read" : false,
         "message_is_read" : true,
         "message_priority" : 1,
         "message_rand" : 673460408,
         "message_sender" : "test_win_01",
         "message_seq" : 10276,
         "message_server_time" : 1558598924,
         "message_status" : 2
      }
   }
]

示例九、接口 TIMGroupCreate 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 CreateGroupResult

{
   "create_group_result_groupid" : "first group id"
}

示例十、接口 TIMGroupInviteMember 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 GroupInviteMemberResult

[
   {
      "group_invite_member_result_identifier" : "user2",
      "group_invite_member_result_result" : 1
   },
   {
      "group_invite_member_result_identifier" : "user3",
      "group_invite_member_result_result" : 1
   }
]

示例十一、接口 TIMGroupDeleteMember 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 GroupDeleteMemberResult

[
   {
      "group_delete_member_result_identifier" : "user2",
      "group_delete_member_result_result" : 1
   },
   {
      "group_delete_member_result_identifier" : "user3",
      "group_delete_member_result_result" : 1
   }
]

示例十二、接口 TIMGroupGetJoinedGroupList 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 GroupBaseInfo

[
   {
      "group_base_info_face_url" : "group face url",
      "group_base_info_group_id" : "first group id",
      "group_base_info_group_name" : "first group name",
      "group_base_info_group_type" : "Public",
      "group_base_info_info_seq" : 7,
      "group_base_info_is_shutup_all" : false,
      "group_base_info_lastest_seq" : 0,
      "group_base_info_msg_flag" : 0,
      "group_base_info_readed_seq" : 0,
      "group_base_info_self_info" : {
         "group_self_info_join_time" : 1551344977,
         "group_self_info_msg_flag" : 0,
         "group_self_info_role" : 400,
         "group_self_info_unread_num" : 0
      }
   }
]

示例十三、接口 TIMGroupGetGroupInfoList 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 GetGroupInfoResult

[
   {
      "get_groups_info_result_code" : 0,
      "get_groups_info_result_desc" : "",
      "get_groups_info_result_info" : {
         "group_detial_info_add_option" : 2,
         "group_detial_info_create_time" : 1551344977,
         "group_detial_info_custom_info" : {},
         "group_detial_info_face_url" : "group face url",
         "group_detial_info_group_id" : "first group id",
         "group_detial_info_group_name" : "first group name",
         "group_detial_info_group_type" : "Public",
         "group_detial_info_info_seq" : 7,
         "group_detial_info_introduction" : "group introduction",
         "group_detial_info_is_shutup_all" : false,
         "group_detial_info_last_info_time" : 1551344977,
         "group_detial_info_last_msg_time" : 0,
         "group_detial_info_max_member_num" : 2000,
         "group_detial_info_member_num" : 1,
         "group_detial_info_next_msg_seq" : 0,
         "group_detial_info_notification" : "group notification",
         "group_detial_info_online_member_num" : 0,
         "group_detial_info_owener_identifier" : "user1",
         "group_detial_info_searchable" : 2,
         "group_detial_info_visible" : 2
      }
   }
]

示例十四、接口 TIMGroupGetMemberInfoList 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 GroupGetMemberInfoListResult

{
   "group_get_memeber_info_list_result_info_array" : [
      {
         "group_member_info_custom_info" : {},
         "group_member_info_identifier" : "user1",
         "group_member_info_join_time" : 1551344977,
         "group_member_info_member_role" : 400,
         "group_member_info_msg_flag" : 0,
         "group_member_info_msg_seq" : 0,
         "group_member_info_name_card" : "",
         "group_member_info_shutup_time" : 0
      }
   ],
   "group_get_memeber_info_list_result_next_seq" : 0
}

示例十五、接口 TIMGroupGetPendencyList 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 GroupPendencyResult

{
   "group_pendency_result_next_start_time" : 0,
   "group_pendency_result_pendency_array" : [
      {
         "group_pendency_add_time" : 1551414487947,
         "group_pendency_apply_invite_msg" : "Want Join Group, Thank you",
         "group_pendency_approval_msg" : "",
         "group_pendency_form_identifier" : "user2",
         "group_pendency_form_user_defined_data" : "",
         "group_pendency_group_id" : "four group id",
         "group_pendency_handle_result" : 0,
         "group_pendency_handled" : 0,
         "group_pendency_pendency_type" : 0,
         "group_pendency_to_identifier" : "user1",
         "group_pendency_to_user_defined_data" : ""
      }
   ],
   "group_pendency_result_read_time_seq" : 0,
   "group_pendency_result_unread_num" : 1
}

示例十六、接口 TIMProfileGetUserProfileList 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 UserProfile

[
   {
      "user_profile_add_permission" : 1,
      "user_profile_birthday" : 0,
      "user_profile_face_url" : "",
      "user_profile_gender" : 0,
      "user_profile_identifier" : "user1",
      "user_profile_language" : 0,
      "user_profile_level" : 0,
      "user_profile_location" : "",
      "user_profile_nick_name" : "User1NickName",
      "user_profile_role" : 0,
      "user_profile_self_signature" : ""
   },
   {
      "user_profile_add_permission" : 0,
      "user_profile_birthday" : 0,
      "user_profile_face_url" : "",
      "user_profile_gender" : 0,
      "user_profile_identifier" : "user2",
      "user_profile_language" : 0,
      "user_profile_level" : 0,
      "user_profile_location" : "",
      "user_profile_nick_name" : "",
      "user_profile_role" : 0,
      "user_profile_self_signature" : ""
   }
]

示例十七、接口 TIMFriendshipGetFriendProfileList 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 FriendProfile

[
   {
      "friend_profile_add_source" : "AddSource_Type_android",
      "friend_profile_add_time" : 1562229520,
      "friend_profile_add_wording" : "",
      "friend_profile_group_name_array" : [],
      "friend_profile_identifier" : "asd12341",
      "friend_profile_item_custom_string_array" : [
         {
            "friend_profile_custom_string_info_key" : "Tag_Profile_Custom_Str",
            "friend_profile_custom_string_info_value" : "qcloud"
         }
      ],
      "friend_profile_remark" : "",
      "friend_profile_user_profile" : {
         "user_profile_add_permission" : 0,
         "user_profile_birthday" : 20190419,
         "user_profile_face_url" : "faceUrl",
         "user_profile_gender" : 0,
         "user_profile_identifier" : "asd12341",
         "user_profile_item_custom_string_array" : [
            {
               "user_profile_custom_string_info_key" : "Tag_Profile_Custom_Str",
               "user_profile_custom_string_info_value" : "qcloud"
            }
         ],
         "user_profile_language" : 1,
         "user_profile_level" : 3,
         "user_profile_location" : "sz\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000",
         "user_profile_nick_name" : "nick_test23",
         "user_profile_role" : 4,
         "user_profile_self_signature" : "sig_test"
      }
   },
   {
      "friend_profile_add_source" : "AddSource_Type_Android",
      "friend_profile_add_time" : 1555659941,
      "friend_profile_add_wording" : "",
      "friend_profile_group_name_array" : [],
      "friend_profile_identifier" : "lttest1",
      "friend_profile_remark" : "",
      "friend_profile_user_profile" : {
         "user_profile_add_permission" : 0,
         "user_profile_birthday" : 0,
         "user_profile_face_url" : "",
         "user_profile_gender" : 0,
         "user_profile_identifier" : "lttest1",
         "user_profile_language" : 0,
         "user_profile_level" : 0,
         "user_profile_location" : "",
         "user_profile_nick_name" : "",
         "user_profile_role" : 0,
         "user_profile_self_signature" : ""
      }
   }
]

示例十八、接口 TIMFriendshipAddFriend 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 FriendResult

{
   "friend_result_code" : 0,
   "friend_result_desc" : "",
   "friend_result_identifier" : "user4"
}

示例十九、接口 TIMFriendshipDeleteFriend 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 FriendResult

[
   {
      "friend_result_code" : 0,
      "friend_result_desc" : "OK",
      "friend_result_identifier" : "user4"
   }
]

示例二十、接口 TIMFriendshipHandleFriendAddRequest 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 FriendResult

{
   "friend_result_code" : 0,
   "friend_result_desc" : "",
   "friend_result_identifier" : "user1"
}

示例二十一、接口 TIMFriendshipGetPendencyList 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 PendencyPage

{
   "pendency_page_current_seq" : 2,
   "pendency_page_pendency_info_array" : [
      {
         "friend_add_pendency_info_add_source" : "AddSource_Type_Windows",
         "friend_add_pendency_info_add_time" : 1563026447,
         "friend_add_pendency_info_add_wording" : "I am Iron Man",
         "friend_add_pendency_info_idenitifer" : "user4",
         "friend_add_pendency_info_nick_name" : "change my nick name",
         "friend_add_pendency_info_type" : 1
      }
   ],
   "pendency_page_start_time" : 0,
   "pendency_page_unread_num" : 0
}

示例二十二、接口 TIMFriendshipDeletePendency 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 FriendResult

[
   {
      "friend_result_code" : 0,
      "friend_result_desc" : "OK",
      "friend_result_identifier" : "user4"
   }
]

示例二十三、接口 TIMFriendshipCheckFriendType 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 FriendshipCheckFriendTypeResult

[
   {
      "friendship_check_friendtype_result_code" : 0,
      "friendship_check_friendtype_result_desc" : "",
      "friendship_check_friendtype_result_identifier" : "user4",
      "friendship_check_friendtype_result_relation" : 3
   }
]

示例二十四、接口 TIMFriendshipCreateFriendGroup 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 FriendResult

[
   {
      "friend_result_code" : 0,
      "friend_result_desc" : "",
      "friend_result_identifier" : "user4"
   },
   {
      "friend_result_code" : 0,
      "friend_result_desc" : "",
      "friend_result_identifier" : "user10"
   }
]

示例二十五、接口 TIMFriendshipGetFriendGroupList 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 FriendGroupInfo

[
   {
      "friend_group_info_count" : 2,
      "friend_group_info_identifier_array" : [ "user4", "user10" ],
      "friend_group_info_name" : "Group123"
   }
]

示例二十六、接口 TIMFriendshipModifyFriendGroup 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 FriendResult

[
   {
      "friend_result_code" : 30001,
      "friend_result_desc" : "Err_SNS_GroupUpdate_Friend_Not_Exist",
      "friend_result_identifier" : "user5"
   },
   {
      "friend_result_code" : 0,
      "friend_result_desc" : "",
      "friend_result_identifier" : "user4"
   },
   {
      "friend_result_code" : 0,
      "friend_result_desc" : "",
      "friend_result_identifier" : "user9"
   }
]

示例二十七、接口 TIMFriendshipAddToBlackList 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 FriendResult

[
   {
      "friend_result_code" : 0,
      "friend_result_desc" : "OK",
      "friend_result_identifier" : "user5"
   },
   {
      "friend_result_code" : 0,
      "friend_result_desc" : "OK",
      "friend_result_identifier" : "user10"
   }
]

示例二十八、接口 TIMFriendshipGetBlackList 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 FriendProfile

[
   {
      "friend_profile_add_source" : "AddSource_Type_Android",
      "friend_profile_add_time" : 1555656865,
      "friend_profile_add_wording" : "",
      "friend_profile_group_name_array" : [ "Group123" ],
      "friend_profile_identifier" : "user10",
      "friend_profile_remark" : "",
      "friend_profile_user_profile" : {
         "user_profile_add_permission" : 0,
         "user_profile_birthday" : 0,
         "user_profile_face_url" : "",
         "user_profile_gender" : 0,
         "user_profile_identifier" : "user10",
         "user_profile_language" : 0,
         "user_profile_level" : 0,
         "user_profile_location" : "",
         "user_profile_nick_name" : "",
         "user_profile_role" : 0,
         "user_profile_self_signature" : ""
      }
   },
   {
      "friend_profile_add_source" : "",
      "friend_profile_add_time" : 0,
      "friend_profile_add_wording" : "",
      "friend_profile_group_name_array" : [],
      "friend_profile_identifier" : "user5",
      "friend_profile_remark" : "",
      "friend_profile_user_profile" : {
         "user_profile_add_permission" : 0,
         "user_profile_birthday" : 0,
         "user_profile_face_url" : "",
         "user_profile_gender" : 0,
         "user_profile_identifier" : "user5",
         "user_profile_language" : 0,
         "user_profile_level" : 0,
         "user_profile_location" : "",
         "user_profile_nick_name" : "",
         "user_profile_role" : 0,
         "user_profile_self_signature" : ""
      }
   }
]

示例二十九、接口 TIMFriendshipDeleteFromBlackList 的回调 TIMCommCallback 参数 json_params 的 JSON。JSON Key 请参考 FriendResult

[
   {
      "friend_result_code" : 0,
      "friend_result_desc" : "OK",
      "friend_result_identifier" : "user5"
   },
   {
      "friend_result_code" : 0,
      "friend_result_desc" : "OK",
      "friend_result_identifier" : "user10"
   }
]