开发者中心

GtIm iOS SDK集成说明书

文档编号:15002B2-DD6-1
版权所有 © 2012-2020 GtVoice

隐私政策说明

类型 建议方案 处理方
数据说明 隐私政策中说明收集的数据类型、存储目录和使用场景 CP
数据说明 数据类型:音频数据 GtIm
数据说明 存储目录:如果设置了录制路径,则保存在设置的路径下,如果未设置录制路径,默认保存在Temp目录下(Temp目录下系统会自动清理),上传的语音文件在GtIm服务器存储一个月。 GtIm
数据说明 使用场景:录音转语音文件+语音内容识别文字 GtIm
数据加密 SDK采集和传输的所有音视频数据已进行Https加密 GtIm
权限弹框 调用麦克风或摄像头时弹框提示,用户点确认按钮后方可使用 CP
隐私弹框 隐私政策弹框,用户点确认方可使用 CP
隐私条款 在开发平台指定字段和应用内张贴隐私政策 CP

版权申明
本文档包含了来自GtIm的机密技术和商业信息,这些信息作为GtIm专用。接受本文档即视为表示同意对其内容保密,并且未经GtIm书面许可,不得复制、泄露或散布本文档的全部或部分内容。
本文档及其描述的内容及产品的著作权和版权受有关法律保护,对本文档内容的任何形式的非法复制,泄露或散布,将导致承担相应的法律责任。
GtIm保留在不另行通知的情况下修改本文档的权利,并保留对本文档内容的全部解释权。
“GtIm”标识是GtIm的注册商标。
 
This document contains confidential technical and commercial information from GtIm Co., Ltd, and is intended for the use of Customers or GtIm partners only for the purposes of related projects to GtIm. No part of it may be reproduced or transmitted in any form or means without the written permission of GtIm.
This document and the product it describes are protected by copyright according to the applicable laws.
The information in this document is subject to change without notice and describes only the product defined in the introduction of this documentation. GtIm will, if necessary, explain issues, which may not be covered by the document.
“GtIm” logo is a registered trademark of GtIm Co., Ltd.

修订历史

日期 版本 说明
2014-11-14 1.0.1 文档 起草
2014-11-18 1.0.2 1、添加登录上线、第三方绑定登录、注销下线
2、发送文本消息、发送图片、发送语音留言
3、播放与录音时音音量分贝检测
4、支持播放时贴近检测。
2018-01-03 1.0.3 文档更新
2018-08-10 1.0.4 开始录音新增一个方法,可以设置录制模式

1.概述 ( Overview )

1.1 范围 ( Scope )

定义GtIm iOS SDK 客户端集成接口。

1.2 发布 ( Issue )

本文档发布于GtIm技术部、产品部及此项目合作公司相关人员。本文档不属于客户契约性文档,不能发布予客户

1.3 综述 ( Brief )

2. 定义 ( Definition )

2.1 术语 ( Terminologies )

术语 定义
appId 应用编号(需向GtIm申请获取)

表格 1    术语表

2.2 约束 ( Constraints )

3.运行环境

ios 7.0及以上的真机环境

4.集成指南

4.1 参数准备

  1. 向GtIm申请appId,否则使用会失效;

4.2 SDK集成

4.2.1 导入sdk

  1. 将sdk文件包通过AddFile的方式添加到工程中。

    2) 勾选文件映射路径

    3) 以demo工程为例,最终效果如图

    4) 将添加引用库,选择工程->Build Phases->+  最终效果如图

    如果找不到tdb库,请按左下角“+”弹出选择界面

    点击Add Other .然后选择快捷键“Shfit+Common+G”弹出go to the folder对界面并输入
    /usr/lib

    打到相对应的tdb.

4.2.2 配置项目

  1. 配置麦克风权限
    iOS 10.0后的系统版本需要在Info里面添加麦克风权限:Privacy - Microphone Usage Description

    2) 配置编译和验证环境
    由于SDK 静态库内部有Category所以需要设置:
    Build Settings->other linker flags 设置   -ObjC(请注意大小写)

4.2.3 使用简介

SDK的所有异步接口执行结果的回调,都是通过GtImChatManageDelegate、GtImDeviceManagerDelegate协议通知到调用层。如需监听SDK的异步回调,按如下示例代码实现协议 GtImChatManageDelegate、GtImDeviceManagerDelegate即可;(如果不用到录音与语音识别操作,可以只遵循实现协议GtImChatManageDelegate即可)

注意:
 * 在需要使用SDK的时候向 GtImSDK_Manage 添加代理实例,代码示例:
[[[GtImSDK_Manage shareInstance] chatManager] addDelegate:self];
[[[GtImSDK_Manage shareInstance] deviceManager] addDelegate:self];
 * 如果不再使用请切记清除代理实例,避免在回调发生时实例已经不存在而已产生致命错误,在ARC开启时,这个引用会导致实例无法自动销毁,代码示例:
[[[GtImSDK_Manage shareInstance] chatManager] removeDelegate:self];
[[[GtImSDK_Manage shareInstance] deviceManager] removeDelegate:nil];
 * 在使用录音或语音识别功能时,每次开始录音或语音识别前必须要重新设置 GtImSDK_Manage 的设备管理实例后,才能调用开始录音或识别接口,避免在回调发生时实例已经不存在而已产生致命错误,代码示例:
[[[GtImSDK_Manage shareInstance] deviceManager] addDelegate:self];
[[[GtImSDK_Manage shareInstance] deviceManager] startRecord:filePath ext:flag delegate:nil];

5.GtImSDKManage 接口设计

5.1 初始化

5.1.1 调用接口

注:APP初始化时调用此接口,保证后续能够安全使用语音功能
- (void)initSDKwithAppid:(UInt32)appId AndisTest:(BOOL)isTest isOverSea:(BOOL)isOverSea;
示例:[[[GtImSDK_Manage shareInstance] chatManager] initSDKwithAppid:100041 AndisTest:NO isOverSea:NO];

接口字段 类型 是否必填 说明
delegate GtImSDKManageDelegate 接口代理对象
appId NSString 应用编号(需向GtIm申请,统一由GtIm分配)
isTest BOOL true:访问测试环境;false:访问正式环境;
isOverSea BOOL true:访问海外环境;false:访问国内环境;

5.1.2 回应结果

返回接口对象

5.2 登录接口

5.2.1 调用接口

  • (void)loginWithUserId:(UInt32)userid password:(NSString *)passowrd pgameServiceID:(NSString *)pgameServiceID wildCard:(NSArray *)wildCard readstatus:(UInt8)readstatus(推荐使用5.3.1的tt登录方式)
协议字段 类型 是否必填 说明
userId UInt32 用户id
passowrd NSString 密码
pgameServiceID NSString 游戏服务器ID
wildCard NSArray * 频道号例如: @[@“0x001”,@“0x002”]
readstatus Uint8 消息确认状态,0:如果发送文本或语音给服务器,服务器不自动确认消息已读,由CP自己发送确认消息,1:服务器自动确认消息已读。

5.2.2 回应结果

- (void)onIMLoginResp:(GtImLoginResp *)loginResp
GtImLoginResp结构

协议字段 类型 是否必填 说明
result UInt32 返回结果 不为0即为失败
msg NSString 错误描述
userid Uint32 用户名加密字符串
nickName NSString 用户昵称
iconUrl NSString 用户图像地址

5.3 第三方登录绑定接口

5.3.1 调用接口

  • (void)thirdLoginWithTT:(NSString *)tt pgameServiceID:(NSString *)pgameServiceID wildCard:(NSArray *)wildCard readstatus:(UInt8)readstatus;(推荐使用此接口)
    示例: NSString * tt = @”{\“uid:\”\”12345\”,\”nickname:\”\”ironman\”};
    [[[GtImSDK_Manage shareInstance] chatManager] thirdLoginWithTT:tt pgameServiceID:@“1” wildCard:@[@“0x001”,@“0x002”] readstatus:1];
协议字段 类型 是否必填 说明
tt NSString 账号绑定验json串,包含用户id跟用户名称等信息:{“uid:”12345”,”nickname:”ironman”}
pgameServiceID NSString 游戏服务器ID
wildCard NSArray * 频道号例如: @[@“0x001”,@“0x002”]
readstatus Uint8 消息确认状态,0:如果发送文本或语音给服务器,服务器不自动确认消息已读,由CP自己发送确认消息,1:服务器自动确认消息已读。

5.3.2 回应结果

-(void)onIMThirdLoginResp:(GtImThirdLoginResp *)thirdLoginResp
GtImThirdLoginResp结构

协议字段 类型 是否必填 说明
result UInt32 返回结果 不为0即为失败
msg NSString 错误描述
userid Uint32 用户名加密字符串
nickName NSString 用户昵称
iconUrl NSString 用户图像地址
thirdUserId NSString 第三方用户ID
thirdUserName NSString 第三方用户名

5.4 退出接口

5.4.1 调用接口

-(void)Logout;

5.5 发送语音留言消息接口

5.5.1 开始录音调用接口

调用开始录音接口后,如果开启计量检测,会回应声贝的检测。
- (void)startRecord:(NSString *)strfilepath ext:(NSString *)ext
delegate:(id)delegate
列:[[[GtImSDK_Manage shareInstance] deviceManager] startRecord:[[[GtImSDK_Manage shareInstance] chatManager] createRecordAudioFilePath] ext:@“” delegate:self]

协议字段 类型 是否必填 说明
strfilepath NSString 语音文件本地路径
ext NSString 扩展字段
delegate GtImDeviceManagerMediaDelegate 回调遵守的协议

5.5.2 1.0.4新增开始录音调用接口

调用开始录音接口后,如果开启计量检测,会回应声贝的检测。
- (void)startRecord:(NSString *)strfilepath recordType:(int)recordType ext:(NSString *)ext
delegate:(id)delegate
列:[[[GtImSDK_Manage shareInstance] deviceManager] startRecord:[[[GtImSDK_Manage shareInstance] chatManager] createRecordAudioFilePath] ext:@“” delegate:self]

协议字段 类型 是否必填 说明
strfilepath NSString 语音文件本地路径
ext NSString 扩展字段
recordType Int 0:只上传  1:边录边上传边识别  2:是边录边上传
delegate GtImDeviceManagerMediaDelegate 回调遵守的协议

5.5.3 回应结果

无回应结果,需要完成录音后才会有回应。

5.5.4 完成停止录音调用接口

调用完成录音接口后,会自动发送语音消息
- (void)stopRecord;

5.5.5 回应结果

  • (void)onIMRecordStopResp:(GtImRecordStopResp *)recordStopResp;
    GtImRecordStopResp结构:
协议字段 类型 是否必填 说明
time UInt32 录音时长
strfilepath NSString* 录音保存文件路径名
ext NSString* 扩展标记

5.6 播放声音文件

5.6.1 调用接口

  • (void)playAudioWithUrl:(NSString *)strUrl filepath:(NSString *)strfilepath ext:(NSString *)ext delegate:(id)delegate
    例: [[[GtImSDK_Manage shareInstance] deviceManager] playAudioWithUrl:self.uploadFileResp.fileurl filepath:nil ext:nil delegate:self];
协议字段 类型 是否必填 说明
strUrl NSString 如果文件在服务器有url,可以直接播放url,如果没有可以为nil
strfilepath NSString 本地文件路径。如果没有可以nil.
ext NSString 扩展字段
delegate GtImDeviceManagerMediaDelegate 回调的协议

5.6.2 回应结果

  • (void)onIMRecordFinishPlayResp:(GtImRecordFinishPlayResp *)recordFinishPlayResp;
协议字段 类型 是否必填 说明
result UInt32 播放完成为 0, 失败为1
describe NSString 描述
ext NSString 扩展标记

5.7 停止播放声音

5.7.1 调用接口

  • (void)stopPlayAudio

5.8 设置语间识别语言

5.8.1 调用接口

  • (void)setSpeechLanguage:(int)speechLanguage
协议字段 类型 是否必填 说明
speechLanguage Int 1.简体中文 2.繁体中文 3.英语

5.9 开始语音识别

5.9.1 调用接口

-(void)startRecognize:(NSString *)strfilepath ext:(NSString )ext type:(R_Speech_Type)type url:(NSString)url delegate:(id)delegate

协议字段 类型 是否必填 说明
strfilepath NSString 文件路径
ext NSString 扩展字段
type int 识别语言,1.简体中文;2.繁体中文;3.英语
url NSString 文件的url路径
delegate GtImDeviceManagerMediaDelegate 回调协议

5.10 停止识别

5.10.1 调用接口

  • (void)stopRecognize

5.10.2 通知回调

识别语音完成或用调用停止识别接口都会收到此回调
- (void)onIMSpeechStopResp:(GtImSpeechStopResp *)speechStopResp;
GtImSpeechStopResp结构:

协议字段 类型 是否必填 说明
err_id uint 0为成功,其它为失败
err_msg NSString 返回的错误描述
result NSString 结果
ext NSString 扩展标记
url NSString 识别URL

5.11 上传文件

5.11.1 调用接口

  • (void)uploadFileReq:(NSString *)filename fileId:(NSString *)fileId
    例:[[[GtImSDK_Manage shareInstance] deviceManager] uploadFileReq:self.recordStopResp.strfilepath fileId:@“1111”]
协议字段 类型 是否必填 说明
filename NSString 要上传的文件路径
fileId NSString 要上传的文件ID

5.11.2 通知回调

  • (void)onIMUploadFileResp:(GtImUploadFileResp *)uploadFileResp;
    GtImUploadFileResp的结构
协议字段 类型 是否必填 说明
Uint32 Result 结果
Msg NSString 错误描述
Fileid NSString 文件ID
Fileurl NSString 返回文件地址,若为图像文件,则是大图像地址
percent UInt32 上传百分比

5.12 下载文件接口

  • (void)downloadFileReq:(NSString *)url filename:(NSString *)filename fileId:(NSString *)fileId
协议字段 类型 是否必填 说明
filename NSString 要下载的文件路径
fileId NSString 要下载的文件ID

5.12.1 调用接口

  • (void)onIMDownloadFileResp:(GtImDownloadFileResp *)downloadFileResp;
协议字段 类型 是否必填 说明
Uint32 Result 结果
Msg NSString 错误描述
Fileid NSString 文件ID
Fileurl NSString 返回文件地址,若为图像文件,则是大图像地址
percent UInt32 下载百分比

5.13 网络重连通知回调

5.13.1 通知回调

  • (void)onIMReconnectionNotify:(NSNumber*)userid
协议字段 类型 是否必填 说明
Userid NSNumber 用户userid

5.14 请求云消息

  • (void)cloudMSGLimitWithSource:(NSString *)source c_id:(UInt32)c_id index:(UInt32)index limit:(UInt32)limit delegate:(id)delegate
协议字段 类型 是否必填 说明
Source Uint32 来源(SYSTEM 系统消息 PUSH 推送消息 userId 好友消息)
index UInt32 消息索引
limit UInt32 请求条数
delegate GtImChatManagerCloudDeleagte 回调协议

5.14.1 云消息回调

  • (void)onIMCloudMSGLimitNotify:(GtImCloudMSGLimitNotify *)cloudMSGLimitNotify;
协议字段 类型 是否必填 说明
Source Uint32 来源(SYSTEM 系统消息 PUSH 推送消息 userId 好友消息)
indexId UInt32 消息索引id
c_id UInt32 若是好友消息, 则为好友ID
count UInt32 消息数
ptime UInt32 当前消息时间
packet NSMutableArray 结束索引内容 xP2PChatMsg,  xGroupChatMsg

5.15 登录频道

5.15.1 调用接口

  • (void)loginChannel:(NSString *)wildCard pgameServiceID:(NSString *)pgameServiceID channelId:(int)channelId
协议字段 类型 是否必填 说明
wildCard NSString 频道通配符
pgameServiceID NSString 服务器id
channelId int 频道ID

5.16  退出频道

5.16.1 调用接口

  • (void)logoutChannel

5.17 获取频道信息

5.17.1 调用接口

  • (void)getChannelInfo

5.17.2 回调接口

  • (void)onIMChannelGetInfoResp:(GtImChannelGetInfoResp *)getInfoResp
    GtImChannelGetInfoResp结构
协议字段 类型 是否必填 说明
xGame_channel NSMutableArray 游戏通道

5.18 获取频道历史消息

5.18.1 调用接口

  • (void)channelHistoryMsg:(UInt32)index count:(UInt32)count wildCard:(NSString *)wildcard
协议字段 类型 是否必填 说明
wildCard NSString 频道通配符
count UInt32 消息数量
index UInt32 消息索引

5.18.2 回调信息

  • (void)onIMChannelGetHistoryMsgResp:(GtImChannelGetHistoryMsgResp *)getHistoryMsgResp
    GtImChannelGetHistoryMsgResp结构
协议字段 类型 是否必填 说明
xHistoryMsg NSMutableArray 历史消息对象list

5.19 频道发送文本信息

5.19.1 调用接口

  • (void)channelTextMsg:(NSString *)textMsg wildCard:(NSString *)wildCard expand:(NSString *)expand
协议字段 类型 是否必填 说明
wildCard NSString 频道通配符
textMsg NSString 消息内容
expand NSString 扩展字段

5.20 频道发送语音信息

5.20.1 调用接口

  • (void)channelVoiceMsg:(NSString *)voiceFilePath voiceDurationTime:(UInt32)voiceDurationTime wildCard:(NSString *)wildCard expand:(NSString *)expand
协议字段 类型 是否必填 说明
wildCard NSString 频道通配符
textMsg NSString 消息内容
expand NSString 扩展字段

5.20.2 回调信息

  • (void)onIMChannelSendMessageResp:(GtImChannelSendMessageResp *)sendMsgResp
    GtImChannelSendMessageResp结构
协议字段 类型 是否必填 说明
Result UInt32 频道通配符
Msg NSString 消息内容
Type UInt32 type= 1 语音  type= 2 文本
wildCard NSString 游戏通道字符串
textMsg NSString 文字消息
url NSString 语音URL
voiceDurationTime UInt32 语音消息时长
expand NSString 透传字段
channel UInt8 游戏通道
shield UInt8 是否有敏感字, 1:存在,0不存在

5.21 频道发送语音识别信息

5.21.1 调用接口

  • (void)channelVoiceMsg:(NSString *)voiceFilePath voiceDurationTime:(UInt32)voiceDurationTime text:(NSString *)text wildCard:(NSString *)wildCard expand:(NSString *)expand
协议字段 类型 是否必填 说明
voiceFilePath NSString 语间文件路径
voiceDurationTime UInt32 语音时长
text NSString 附加文本
wildCard NSString 频道通配符
expand NSString 扩展字段

5.22 获取好友列表

5.22.1 调用接口

  • (NSMutableArray *)getFriendList

5.23  获取黑名单列表

5.23.1 调用接口

  • (NSMutableArray *)getBlackList

5.24 添加好友

5.24.1 调用接口

  • (void)addFriend:(UInt32)userid greet:(NSString *)greet
协议字段 类型 是否必填 说明
greet NSString 问候语
userid UInt32 好友的id

5.24.2 回调接口

添加好友回应,对方接受/拒绝
- (void)onIMFriendAddResp:(GtImFriendAddResp *)addResp
GtImFriendAddResp结构

协议字段 类型 是否必填 说明
userid UInt32 好友的id
affirm UInt32 返回结果 :0拒绝;1同意;2同意并加对方为好友
name NSString 用户名称
url NSString 头像地址
greet NSString 问候语

5.24.3 好友请求通知

  • (void)onIMFriendAddNotify:(GtImFriendAddNotify *)addNotify
    GtImFriendAddNotify结构
协议字段 类型 是否必填 说明
userid UInt32 好友的id
sign NSString 签名
name NSString 用户名称
url NSString 头像地址
greet NSString 问候语
sendtime NSInteger 记录消息来的时间
category NSInteger 0.好友;1.申请入群;2.群主邀请入群;3.其他通知。
userstatus NSInteger 0.拒绝(显示“已拒绝”)1.同意(显示“已同意”);2.为处理(显示拒绝和同意按钮);3.其他通知(不显示按钮)。

5.25 删除好友

5.25.1 调用接口

-(void)deleteFriendwithfriendid:(UInt32)userid

协议字段 类型 是否必填 说明
userid UInt32 删除好友的id

5.25.2 回调

删除好友返回
- (void)onIMFriendDelResp:(GtImFriendDelResp *)delResp
GtImFriendDelResp结构

协议字段 类型 是否必填 说明
result UInit32 0为操作成功,其它失败
msg NSString 描述信息
del_friend UInt8 删除好友id
act UInt8 动作 e_delfriend

5.25.3 删除好友通知

  • (void)onIMFriendDelNotify:(GtImFriendDelNotify *)delNotify
    GtImFriendDelNotify结构
协议字段 类型 是否必填 说明
del_friend UInit32 删除好友id
del_fromlist UInt8 从自己的好友列表中删除

5.26 接受好友请求

5.26.1 调用接口

  • (void)addFriendAccept:(UInt32)userid affirm:(UInt8)affirm greet:(NSString *)greet
协议字段 类型 是否必填 说明
greet NSString 问候语
userid UInt32 好友的id
affirm UInt8 1接受,0拒绝

5.26.2 回调接口

  • (void)onIMFriendAcceptResp:(GtImFriendAcceptResp *)acceptResp
    GtImFriendAcceptResp结构
协议字段 类型 是否必填 说明
greet NSString 问候语
userid UInt32 好友的id
affirm UInt8 1接受,0拒绝

5.27 搜索好友

5.27.1 调用接口

- (void)searchFriendWithKeyword:(NSString *)keyword start:(UInt32)start count:(UInt32)count

协议字段 类型 是否必填 说明
keyword NSString 关键字
start UInt32
count UInt32 返回的数量

5.27.2 回调

  • (void)onIMFriendSearchResp:(GtImFriendSearchResp *)searchResp
    GtImFriendSearchResp结构
协议字段 类型 是否必填 说明
result UInit32 0为操作成功,其它失败
msg NSString 描述信息
xSerachinfo NSMutableArray 用户信息

5.28 获取用户信息

5.28.1 调用接口

  • (void)getUserInfo:(UInt32)userid
协议字段 类型 是否必填 说明
userid UInt32 好友的id

5.28.2 回调

  • (void)onIMUserGetInfoResp:(GtImUserGetInfoResp *)userGetInfoResp
    GtImUserGetInfoResp结构
协议字段 类型 是否必填 说明
userid UInt32 好友的id
sex UInt8 性别
nickname NSString 昵称
headicon NSString 头像地址

5.29 好友私聊发送消息

5.29.1 调用接口

  • (void)chatFriendTextMsg:(NSString *)data toUserId:(UInt32)userid ext:(NSString *)ext flag:(NSString *)flag
协议字段 类型 是否必填 说明
userid UInt32 好友的id
Data NSString 消息内容
ext NSString 扩展字段
Flag NSString 标志位消息唯一ID

5.30 好友私聊发送语音消息

5.30.1 调用接口

  • (void)chatFriendAudioMsg:(NSString *)file time:(UInt32)time toUserId:(UInt32)userid text:(NSString *)text ext:(NSString *)ext flag:(NSString *)flag
协议字段 类型 是否必填 说明
toUserId UInt32 好友的id
file NSString 文件路径
ext NSString 扩展字段
Flag NSString 标志位消息唯一ID
text NSString 附带文本

5.30.2 回调

  • (void)onIMChatFriendResp:(GtImChatFriendResp *)chatFriendResp
    GtImChatFriendResp结构
协议字段 类型 是否必填 说明
result UInit32 0为操作成功,其它失败
msg NSString 描述信息
userId UInt8 好友id
flag NSString 消息标记

6. 附录 ( Appendices )

6.1 文档绑定

文档正标题 GtIm iOS SDK集成说明书
文档版本 1.0.4
文档编号 15002B2-DD6-1
文档主体 DOC
绑定类型 DOC

表格 2    文档绑定关系表

6.2 注意事项

常见问题 可能引起的原因 解决方法
播放没声音 1、手机麦克风没权限 隐私-麦克风-打开
播放没声音 1、提前把GtImSDKManage类对象释放掉 保证GtImSDKManage类对象在使用的生命周期内不被释放

6.3 接口对象说明

GtImContentMode 枚举说明

字段 类型 数值 说明
GtImSendTextMessagesRegular int 0 发送频率正常
GtImSendTextMessagesTooFrequent int 1 发送频率过快


GtImSendTextMessagesFrequentMode枚举说明

字段 类型 数值 说明
GtImContentModePhoto int 0 图片类型
GtImContentModeRichTextVoice int 1 声音类型
GtImContentModeCommonText int 2 普通文本类型
GtImContentModeDesc int 3 其它


GtImChatMessageModel 类信息说明

接口字段 类型 是否必填 说明
msgId UInt32 消息Id
receiver_openId NSString 接收者openId
receiver_name NSString 接收者名字
receiver_head NSString 接收者头像
sender_openId NSString 发送者openId
sender_name NSString 发送者名字
sender_head NSString 发送者头像
time NSDate 发送时间
message NSString 消息内容
contentMode int 消息类型
voiceTime NSString 录音时长
readState int 消息状态,备用


GtImUserInfo 类信息说明

字段 类型 是否必填 说明
openID NSString 用户id
nickName NSString 用户名字
iconUrl NSString 用户头像地址
thirdID NSString 第三方登录id
thirdName NSString 第三方登录名字