github.com/872409/go-netease-im@v1.0.2-0.20201109080841-fdb3e13691c5/models.go (about) 1 package netease 2 3 // TokenInfo 云通信Token 4 type TokenInfo struct { 5 Token string `json:"token"` 6 Accid string `json:"accid"` 7 Name string `json:"name"` 8 } 9 10 // ImUser 云通信用户 11 type ImUser struct { 12 Accid string // 网易云通信ID,最大长度32字符,必须保证一个APP内唯一(只允许字母、数字、半角下划线_、@、半角点以及半角-组成,不区分大小写,会统一小写处理,请注意以此接口返回结果中的accid为准)。 13 Name string // 网易云通信ID昵称,最大长度64字符,用来PUSH推送时显示的昵称 14 Propertys string 15 IconURL string // 网易云通信ID头像URL,第三方可选填,最大长度1024 16 Token string 17 Sign string // 用户签名,最大长度256字符 18 Email string // 用户email,最大长度64字符 19 Birthday string // 用户生日,最大长度16字符 20 Mobile string // 用户mobile,最大长度32字符 21 Gender int // 用户性别,0表示未知,1表示男,2女表示女 22 Extension string // 用户名片扩展字段,最大长度1024字符 23 } 24 25 // ImSendMessageOption . 26 type ImSendMessageOption struct { 27 Antispam bool // 对于对接了易盾反垃圾功能的应用,本消息是否需要指定经由易盾检测的内容(antispamCustom)。true或false, 默认false。只对消息类型为:100 自定义消息类型 的消息生效。 28 AntispamCustom *AntiSpamCustom // 在antispam参数为true时生效。 29 Option *MessageOption // 发消息时特殊指定的行为选项 30 Pushcontent string // ios推送内容,不超过150字符,option选项中允许推送(push=true),此字段可以指定推送内容 31 Payload string // ios 推送对应的payload,必须是JSON,不能超过2k字符 32 Extension string // 开发者扩展字段,长度限制1024字符 33 ForcePushList []string // 发送群消息时的强推(@操作)用户列表,格式为JSONArray,如["accid1","accid2"]。若forcepushall为true,则forcepushlist为除发送者外的所有有效群成员 34 ForcePushContent string // 发送群消息时,针对强推(@操作)列表forcepushlist中的用户,强制推送的内容 35 ForcePushAll bool // 发送群消息时,强推(@操作)列表是否为群里除发送者外的所有有效成员,true或false,默认为false 36 Bid string // 可选,反垃圾业务ID,实现“单条消息配置对应反垃圾”,若不填则使用原来的反垃圾配置 37 } 38 39 // ImSendAttachMessageOption . 40 type ImSendAttachMessageOption struct { 41 Pushcontent string // iOS推送内容,第三方自己组装的推送内容,不超过150字符 42 Payload string // ios 推送对应的payload,必须是JSON,不能超过2k字符 43 Sound string // 如果有指定推送,此属性指定为客户端本地的声音文件名,长度不要超过30个字符,如果不指定,会使用默认声音 44 Save int // 1表示只发在线,2表示会存离线,其他会报414错误。默认会存离线 45 Option *MessageOption // 发消息时特殊指定的行为选项 46 } 47 48 // AntiSpamCustom 自定义的反垃圾检测内容, JSON格式,不能超过5000字符 49 type AntiSpamCustom struct { 50 Type int `json:"type"` // 1:文本,2:图片。 51 Data string `json:"data"` // 文本内容or图片地址 52 } 53 54 // MessageOption 发消息时特殊指定的行为选项 55 type MessageOption struct { 56 Roam *bool `json:"roam,omitempty"` // 该消息是否需要漫游,默认true(需要app开通漫游消息功能) 57 History *bool `json:"history,omitempty"` // 该消息是否存云端历史,默认true 58 Sendersync *bool `json:"sendersync,omitempty"` // 该消息是否需要发送方多端同步,默认true 59 Push *bool `json:"push,omitempty"` // 该消息是否需要APNS推送或安卓系统通知栏推送,默认true 60 Route *bool `json:"route,omitempty"` // 该消息是否需要抄送第三方;默认true (需要app开通消息抄送功能) 61 Badge *bool `json:"badge,omitempty"` // 该消息是否需要计入到未读计数中,默认true 62 NeedPushNick *bool `json:"needPushNick,omitempty"` // 推送文案是否需要带上昵称,不设置该参数时默认true 63 Persistent *bool `json:"persistent,omitempty"` // 是否需要存离线消息,不设置该参数时默认true 64 } 65 66 // TextMessage 文本消息 67 type TextMessage struct { 68 Message string `json:"msg"` 69 } 70 71 // ImageMessage 图片消息 72 type ImageMessage struct { 73 Name string `json:"name"` // 图片name 74 Md5 string `json:"md5"` // 图片文件md5 75 URL string `json:"url"` // 生成的url 76 Extension string `json:"ext"` // 图片后缀 77 Width uint `json:"w"` // 宽 78 Height uint `json:"h"` // 高 79 Size uint `json:"size"` // 图片大小 80 } 81 82 // VoiceMessage 语音消息 83 type VoiceMessage struct { 84 Duration uint `json:"dur"` // 语音持续时长ms 85 Md5 string `json:"md5"` // 语音文件md5 86 URL string `json:"url"` // 生成的url 87 Extension string `json:"ext"` // 语音消息格式,只能是aac格式 88 Size uint `json:"size"` // 语音文件大小 89 } 90 91 // VideoMessage 视频消息 92 type VideoMessage struct { 93 Duration uint `json:"dur"` // 视频持续时长ms 94 Md5 string `json:"md5"` // 视频文件md5 95 URL string `json:"url"` // 生成的url 96 Width uint `json:"w"` // 宽 97 Height uint `json:"h"` // 高 98 Extension string `json:"ext"` // 视频格式 99 Size uint `json:"size"` // 视频文件大小 100 } 101 102 // LocationMessage 位置信息 103 type LocationMessage struct { 104 Title string `json:"title"` // 地理位置title 105 Longitude float64 `json:"lng"` // 经度 106 Latitude float64 `json:"lat"` // 纬度 107 } 108 109 // FileMessage 文件消息 110 type FileMessage struct { 111 Name string `json:"name"` // 文件名 112 Md5 string `json:"md5"` // 图片文件md5 113 URL string `json:"url"` // 生成的url 114 Extension string `json:"ext"` // 语音消息格式,只能是aac格式 115 Size uint `json:"size"` // 语音文件大小 116 } 117 118 // LoginEventCopyInfo 登录事件消息抄送 119 type LoginEventCopyInfo struct { 120 EventType string `json:"eventType"` // 值为2,表示是登录事件的消息 121 AcctID string `json:"accid"` // 发生登录事件的用户帐号,字符串类型 122 IPAdrees string `json:"clientIp"` // 登录时的ip地址 123 ClientType string `json:"clientType"` // 客户端类型: AOS、IOS、PC、WINPHONE、WEB、REST,字符串类型 124 Code string `json:"code"` // 登录事件的返回码,可转为Integer类型数据 125 SdkVersion string `json:"sdkVersion"` // 当前sdk的版本信息,字符串类型 126 Time string `json:"timestamp"` // 登录事件发生时的时间戳,可转为Long型数据 127 } 128 129 // LogoutEventCopyInfo 登出事件消息抄送 130 type LogoutEventCopyInfo struct { 131 EventType string `json:"eventType"` // 值为3,表示是登出事件的消息 132 AcctID string `json:"accid"` // 发生登出事件的用户帐号,字符串类型 133 IPAdrees string `json:"clientIp"` // 登出时的ip地址 134 ClientType string `json:"clientType"` // 客户端类型: AOS、IOS、PC、WINPHONE、WEB、REST,字符串类型 135 Code string `json:"code"` // 登出事件的返回码,可转为Integer类型数据 136 SdkVersion string `json:"sdkVersion"` // 当前sdk的版本信息,字符串类型 137 Time string `json:"timestamp"` // 登出事件发生时的时间戳,可转为Long型数据 138 } 139 140 // SenssionCopyInfo 会话类型信息抄送 141 type SenssionCopyInfo struct { 142 EventType string `json:"eventType"` // 值为1,表示是会话类型的消息 143 ConvType string `json:"convType"` // 会话具体类型:PERSON(二人会话数据)、TEAM(群聊数据)、 CUSTOM_PERSON(个人自定义系统通知)、CUSTOM_TEAM(群组自定义系统通知),字符串类型 144 To string `json:"to"` // 若convType为PERSON或CUSTOM_PERSON,则to为消息接收者的用户账号,字符串类型;若convType为TEAM或CUSTOM_TEAM,则to为tid,即群id,可转为Long型数据 145 FromAccount string `json:"fromAccount"` // 消息发送者的用户账号,字符串类型 146 FromClientType string `json:"fromClientType"` // 发送客户端类型: AOS、IOS、PC、WINPHONE、WEB、REST,字符串类型 147 FromDeviceID string `json:"fromDeviceId"` // 发送设备id,字符串类型 148 FromNick string `json:"fromNick"` // 发送方昵称,字符串类型 149 MsgTimestamp string `json:"msgTimestamp"` // 消息发送时间,字符串类型 150 MsgType string `json:"msgType"` // 会话具体类型PERSON、TEAM对应的通知消息类型:EXT、PICTURE、AUDIO、VIDEO、LOCATION 、NOTIFICATION、FILE、 //文件消息NETCALL_AUDIO、 //网络电话音频聊天 NETCALL_VEDIO、 //网络电话视频聊天 DATATUNNEL_NEW、 //新的数据通道请求通知 TIPS、 //提示类型消息 CUSTOM //自定义消息 会话具体类型CUSTOM_PERSON对应的通知消息类型: FRIEND_ADD、 //加好友 FRIEND_DELETE、 //删除好友 CUSTOM_P2P_MSG、 //个人自定义系统通知 会话具体类型CUSTOM_TEAM对应的通知消息类型: TEAM_APPLY、 //申请入群 TEAM_APPLY_REJECT、 //拒绝入群申请 TEAM_INVITE、 //邀请进群 TEAM_INVITE_REJECT、 //拒绝邀请 TLIST_UPDATE、 //群信息更新 CUSTOM_TEAM_MSG、 //群组自定义系统通知 151 Body string `json:"body"` // 消息内容,字符串类型 152 Attach string `json:"attach"` // 附加消息,字符串类型 153 MsgidClient string `json:"msgidClient"` // 客户端生成的消息id,仅在convType为PERSON或TEAM含此字段,字符串类型 154 MsgidServer string `json:"msgidServer"` // 服务端生成的消息id,可转为Long型数据 155 ResendFlag string `json:"resendFlag"` // 重发标记:0不是重发, 1是重发。仅在convType为PERSON或TEAM时含此字段,可转为Integer类型数据 156 CustomSafeFlag string `json:"customSafeFlag"` // 自定义系统通知消息是否存离线:0:不存,1:存。仅在convType为CUSTOM_PERSON或CUSTOM_TEAM时含此字段,可转为Integer类型数据 157 CustomApnsText string `json:"customApnsText"` // 自定义系统通知消息推送文本。仅在convType为CUSTOM_PERSON或CUSTOM_TEAM时含此字段,字符串类型 158 TMembers string `json:"tMembers"` // 跟本次群操作有关的用户accid,仅在convType为TEAM或CUSTOM_TEAM时含此字段,字符串类型 159 Ext string `json:"ext"` // 消息扩展字段 160 Antispam string `json:"antispam"` // 标识是否被反垃圾,仅在被反垃圾时才有此字段,可转为Boolean类型数据 161 YidunRes string `json:"yidunRes"` // 易盾反垃圾的原始处理细节,只有接入了相关功能易盾反垃圾的应用才会有这个字段。 162 } 163 164 // AudioCopyInfo 音视频/白板时长消息抄送 165 type AudioCopyInfo struct { 166 ChannelID string `json:"channelId"` // 通道号 167 Createtime string `json:"createtime"` // 音视频通话/白板开始的事件, 可转为13位时间戳 168 Duration string `json:"duration"` // 此通通话/白板的通话时长,精确到秒,可转为Integer类型 169 EventType string `json:"eventType"` // 为5,表示是实时音视频/白板时长类型事件 170 Live string `json:"live"` // 是否是互动直播的音视频,0:否,1:是 171 Members string `json:"members"` // 表示通话/白板的参与者:accid为用户帐号;如果是通话的发起者的话,caller字段为true,否则无caller字段;duration表示对应accid用户的单方时长,其中白板消息暂无此单方时长的统计 172 Status string `json:"status"` // 通话/白板状态:SUCCESS:表示正常挂断;TIMEOUT:表示超时;SINGLE_PARTICIPATE:表示只有一个参与者;UNKNOWN:表示未知状态 173 Type string `json:"type"` // 类型:AUDIO:表示音频通话;VEDIO:表示视频通话;DataTunnel:表示白板事件 174 Ext string `json:"ext"` // 音视频发起时的自定义字段,可选,由用户指定 175 Running bool `json:"running"` // 若为true表示超长时长通话的过程中的抄送,缺省或者false表示普通时长通话的抄送或者超长时长通话的最后一次抄送 176 } 177 178 // AudioDownloadCopyInfo 音视频/白板文件下载信息抄送 179 type AudioDownloadCopyInfo struct { 180 EventType string `json:"eventType"` // 值为6,表示是音视频/白板文件下载信息类型的消息 181 // 可转为JSONArray,其中的字段释义如下: 182 // caller:是否是此通通话的发起者,若是则为true,若不是则没有此字段,可转为Boolean值 183 // channelid:通道号,可转为Long值 184 // filename:文件名,直接存储,混合录制文件filename带有"-mix"标记 185 // md5:文件的md5值 186 // size:文件大小,单位为字符,可转为Long值 187 // type:文件的类型(扩展名),包括:实时音频录制文件(aac)、白板录制文件(gz)、实时视频录制文件(mp4)、互动直播视频录制文件(flv) 188 // url:文件的下载地址,请不要解析该字段 189 // user:用户帐号,若该文件为混合录制文件,则该字段为"0" 190 // mix:是否为混合录制文件,true:混合录制文件;false:单人录制文件 191 // vid:点播文件id,注意白板录制文件(gz)无此字段 192 FileInfo string `json:"fileinfo"` 193 } 194 195 // FileDownloadInfo 单个文件下载信息 196 type FileDownloadInfo struct { 197 Caller bool `json:"caller"` // 是否是此通通话的发起者,若是则为true,若不是则没有此字段,可转为Boolean值 198 ChannelID string `json:"channelid"` // 通道号 199 Filename string `json:"filename"` // 文件名,直接存储,混合录制文件filename带有"-mix"标记 200 Md5 string `json:"md5"` // 文件的md5值 201 Mix bool `json:"mix"` // 是否为混合录制文件,true:混合录制文件;false:单人录制文件 202 Size string `json:"size"` // size:文件大小,单位为字符,可转为Long值 203 Type string `json:"type"` // 文件的类型(扩展名),包括:实时音频录制文件(aac)、白板录制文件(gz)、实时视频录制文件(mp4)、互动直播视频录制文件(flv) 204 Vid string `json:"vid"` // 点播文件id,注意白板录制文件(gz)无此字段 205 URL string `json:"url"` // 文件的下载地址,请不要解析该字段 206 User string `json:"user"` // 用户帐号,若该文件为混合录制文件,则该字段为"0" 207 } 208 209 // RoomInfo . 210 type RoomInfo struct { 211 RoomID int64 `json:"cid"` // 房间ID【int64】 212 RoomName string `json:"cname"` // 房间名称 213 AcctID string `json:"accid"` // 房间创建者ID 214 Total int `json:"total"` // 房间内活跃用户总数 215 Mode int `json:"mode"` // 房间模式【1:双人、2:多人】 216 Status int `json:"stats"` // 房间状态【1:初始状态,2:进行中,3:正常结束,4:异常结束】 217 CreateTime int64 `json:"createtime"` // 房间创建时间【int64】 218 Destroytime int64 `json:"destroytime"` // 房间结束时间【int64】 219 } 220 221 // RoomInfo . 222 type Friend struct { 223 Faccid string `json:"faccid"` // 好友 224 Alias string `json:"alias"` // alias 225 Ex string `json:"ex"` // alias 226 ServerEx string `json:"serverex"` // alias 227 Bidirection bool `json:"bidirection"` // 228 CreateTime int64 `json:"createtime"` // 房间创建时间【int64】 229 } 230 231 type Team struct { 232 Owner string `json:"owner"` 233 Tname string `json:"tname"` 234 Maxusers int `json:"maxusers"` 235 Tid int `json:"tid"` 236 Size int `json:"size"` 237 Custom string `json:"custom"` 238 } 239 240 type TeamDetail struct { 241 Team 242 Announcement string `json:"announcement"` 243 Joinmode int `json:"joinmode"` 244 Intro string `json:"intro"` 245 ClientCustom string `json:"clientCustom"` 246 Mute bool `json:"mute"` 247 Createtime int64 `json:"createtime"` 248 Updatetime int64 `json:"updatetime"` 249 Members []string `json:"members"` 250 }