Documentation ¶
Index ¶
- Constants
- func MentionUser(userID string) string
- type Ark
- type ArkKV
- type ArkObj
- type ArkObjKV
- type Embed
- type EmbedField
- type EventType
- type Intent
- type Member
- type Message
- type MessageAttachment
- type MessageEmbedThumbnail
- type MessageReference
- type OPCode
- type PostChannelMessage
- type Timestamp
- type User
- type WSATMessageData
- type WSAccessPoint
- type WSHelloData
- type WSIdentityData
- type WSPayload
- type WSPayloadBase
- type WSReadyData
- type WSResumeData
- type WSSession
Constants ¶
View Source
const ( // IntentGuilds 包含 // - GUILD_CREATE -- 当机器人加入新 guild 时 // - GUILD_UPDATE -- 当 guild 资料发生变更时 // - GUILD_DELETE -- 当机器人退出 guild 时 // - CHANNEL_CREATE -- 当 channel 被创建时 // - CHANNEL_UPDATE -- 当 channel 被更新时 // - CHANNEL_DELETE -- 当 channel 被删除时 IntentGuilds = 1 << 0 // IntentGuildMembers 包含 // - GUILD_MEMBER_ADD -- 当成员加入时 // - GUILD_MEMBER_UPDATE -- 当成员资料变更时 // - GUILD_MEMBER_REMOVE -- 当成员被移除时 IntentGuildMembers = 1 << 1 // IntentGuildMessages 包含 // - MESSAGE_CREATE -- 发送消息事件,代表频道内的全部消息,而不只是 at 机器人的消息。内容与 AT_MESSAGE_CREATE 相同 IntentGuildMessages = 1 << 9 // IntentGuildMessageReactions 包含 // - MESSAGE_REACTION_ADD -- 为消息添加表情表态 // - MESSAGE_REACTION_REMOVE -- 为消息删除表情表态 IntentGuildMessageReactions = 1 << 10 // IntentDirectMessage 包含 // - DIRECT_MESSAGE_CREATE -- 当收到用户发给机器人的私信消息时 IntentDirectMessage = 1 << 12 // IntentMessageAudit 包含 // - MESSAGE_AUDIT_PASS -- 消息审核通过 // - MESSAGE_AUDIT_REJECT -- 消息审核不通过 IntentMessageAudit = 1 << 27 // IntentAudioAction 包含 // - AUDIO_START -- 音频开始播放时 // - AUDIO_FINISH -- 音频播放结束时 // - AUDIO_ON_MIC -- 上麦时 // - AUDIO_OFF_MIC -- 下麦时 IntentAudioAction = 1 << 29 // IntentAtMessages 包含 // - AT_MESSAGE_CREATE -- 当收到@机器人的消息时 IntentAtMessages = 1 << 30 )
View Source
const ( OPCodeDispatch = 0 // 服务端进行消息推送 OPCodeHeartbeat = 1 // 客户端或服务端发送心跳 OPCodeIdentify = 2 // 客户端发送鉴权 OPCodeResume = 6 // 客户端恢复连接 OPCodeReconnect = 7 // 服务端通知客户端重新连接 OPCodeInvalidSession = 9 // 当identify或resume的时候,如果参数有错,服务端会返回该消息 OPCodeHello = 10 // 当客户端与网关建立ws连接之后,网关下发的第一条消息 OPCodeHeartbeatACK = 11 // 当发送心跳成功之后,就会收到该消息 )
具体参考: https://bot.q.qq.com/wiki/develop/api/gateway/opcode.html
Variables ¶
This section is empty.
Functions ¶
func MentionUser ¶
MentionUser 返回 at 用户的内嵌格式 https://bot.q.qq.com/wiki/develop/api/openapi/message/message_format.html
Types ¶
type Ark ¶
type Ark struct { TemplateID int `json:"template_id,omitempty"` // ark 模版 ID KV []*ArkKV `json:"kv,omitempty"` // ArkKV 数组 }
Ark 消息模版
type ArkKV ¶
type ArkKV struct { Key string `json:"key,omitempty"` Value string `json:"value,omitempty"` Obj []*ArkObj `json:"obj,omitempty"` }
ArkKV Ark 键值对
type Embed ¶
type Embed struct { Title string `json:"title,omitempty"` Description string `json:"description,omitempty"` Prompt string `json:"prompt"` // 消息弹窗内容,消息列表摘要 Thumbnail MessageEmbedThumbnail `json:"thumbnail,omitempty"` Fields []*EmbedField `json:"fields,omitempty"` }
Embed 结构
type EmbedField ¶
type EmbedField struct { Name string `json:"name,omitempty"` Value string `json:"value,omitempty"` }
EmbedField Embed字段描述
type Member ¶
type Member struct { GuildID string `json:"guild_id"` JoinedAt Timestamp `json:"joined_at"` Nick string `json:"nick"` User *User `json:"user"` Roles []string `json:"roles"` }
Member 群成员
type Message ¶
type Message struct { // 消息ID ID string `json:"id"` // 子频道ID ChannelID string `json:"channel_id"` // 频道ID GuildID string `json:"guild_id"` // 内容 Content string `json:"content"` // 发送时间 Timestamp Timestamp `json:"timestamp"` // 消息编辑时间 EditedTimestamp Timestamp `json:"edited_timestamp"` // 是否@all MentionEveryone bool `json:"mention_everyone"` // 消息发送方 Author *User `json:"author"` // 消息发送方Author的member属性,只是部分属性 Member *Member `json:"member"` // 附件 Attachments []*MessageAttachment `json:"attachments"` // 结构化消息-embeds Embeds []*Embed `json:"embeds"` // 消息中的提醒信息(@)列表 Mentions []*User `json:"mentions"` // ark 消息 Ark *Ark `json:"ark"` // 私信消息 DirectMessage bool `json:"direct_message"` // 子频道 seq,用于消息间的排序,seq 在同一子频道中按从先到后的顺序递增,不同的子频道之前消息无法排序 SeqInChannel string `json:"seq_in_channel"` // 引用的消息 MessageReference *MessageReference `json:"message_reference,omitempty"` }
Message 消息结构体定义
type MessageAttachment ¶
type MessageAttachment struct {
URL string `json:"url"`
}
MessageAttachment 附件定义
type MessageEmbedThumbnail ¶
type MessageEmbedThumbnail struct {
URL string `json:"url"`
}
MessageEmbedThumbnail embed 消息的缩略图对象
type MessageReference ¶
type MessageReference struct { MessageID string `json:"message_id"` // 消息 id IgnoreGetMessageError bool `json:"ignore_get_message_error"` // 是否忽律获取消息失败错误 }
MessageReference 引用消息
type PostChannelMessage ¶
type PostChannelMessage struct { Content string `json:"content,omitempty"` Embed *Embed `json:"embed,omitempty"` Ark *Ark `json:"ark,omitempty"` MessageReference *MessageReference `json:"message_reference,omitempty"` Image string `json:"image,omitempty"` MsgID string `json:"msg_id,omitempty"` // 要回复的消息id,为空是主动消息,公域机器人会异步审核,不为空是被动消息,公域机器人会校验语料 }
PostChannelMessage 发送消息结构体定义
type User ¶
type User struct { ID string `json:"id"` Username string `json:"username"` Avatar string `json:"avatar"` Bot bool `json:"bot"` UnionOpenID string `json:"union_openid"` // 特殊关联应用的 openid UnionUserAccount string `json:"union_user_account"` // 机器人关联的用户信息,与union_openid关联的应用是同一个 }
User 用户
type WSAccessPoint ¶
type WSAccessPoint struct {
URL string `json:"url"`
}
WSAccessPoint websocket 接入点信息
type WSHelloData ¶
type WSHelloData struct {
HeartbeatInterval int `json:"heartbeat_interval"`
}
WSHelloData 连接成功后返回
type WSIdentityData ¶
type WSIdentityData struct { Token string `json:"token"` Intents Intent `json:"intents"` Shard []uint32 `json:"shard"` // array of two integers (shard_id, num_shards) Properties struct { Os string `json:"$os,omitempty"` Browser string `json:"$browser,omitempty"` Device string `json:"$device,omitempty"` } `json:"properties,omitempty"` }
WSIdentityData 鉴权数据
type WSPayload ¶
type WSPayload struct { WSPayloadBase Data interface{} `json:"d,omitempty"` RawMessage []byte `json:"-"` // 原始的 message 数据 }
WSPayload websocket 消息传输结构
type WSPayloadBase ¶
type WSPayloadBase struct { OPCode OPCode `json:"op"` Seq uint32 `json:"s,omitempty"` Type EventType `json:"t,omitempty"` }
WSPayloadBase websocket 基础信息, 不包含 data
type WSReadyData ¶
type WSReadyData struct { Version int `json:"version"` SessionID string `json:"session_id"` User struct { ID string `json:"id"` Username string `json:"username"` Bot bool `json:"bot"` } `json:"user"` Shard []uint32 `json:"shard"` }
WSReadyData 鉴权完成后返回
type WSResumeData ¶
type WSResumeData struct { Token string `json:"token"` SessionID string `json:"session_id"` Seq uint32 `json:"seq"` }
WSResumeData 重连数据
Click to show internal directories.
Click to hide internal directories.