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  }