Documentation ¶
Overview ¶
Package lark is an easy-to-use SDK for Feishu and Lark Open Platform, which implements messaging APIs, with full-fledged supports on building Chat Bot and Notification Bot.
Index ¶
- Constants
- Variables
- func BuildOutcomingMessageReq(om OutcomingMessage) map[string]interface{}
- func Decrypt(encryptedKey []byte, data string) ([]byte, error)
- func DownloadFile(path, url string) error
- func EncryptKey(key string) []byte
- func GenSign(secret string, timestamp int64) (string, error)
- func PostEvent(client *http.Client, hookURL string, message EventMessage) (*http.Response, error)
- type AddBotToGroupResponse
- type AddChatMemberRequest
- type AddChatMemberResponse
- type AddGroupMemberResponse
- type AudioContent
- type AuthTokenInternalResponse
- type BaseResponse
- type BatchGetUserInfoResponse
- type Bot
- func (bot Bot) AccessToken() string
- func (bot *Bot) AddBotToGroup(openChatID string) (*AddBotToGroupResponse, error)
- func (bot Bot) AddChatMember(chatID string, idList []string) (*AddChatMemberResponse, error)
- func (bot *Bot) AddGroupMember(openChatID string, openID []string) (*AddGroupMemberResponse, error)
- func (bot *Bot) AddGroupMemberByUserID(openChatID string, userID []string) (*AddGroupMemberResponse, error)
- func (bot Bot) AddReaction(messageID string, emojiType EmojiType) (*ReactionResponse, error)
- func (bot Bot) AppID() string
- func (bot Bot) BatchGetUserInfo(userIDType string, userIDs ...string) (*BatchGetUserInfoResponse, error)
- func (bot Bot) BotType() int
- func (bot Bot) CreateChat(req CreateChatRequest) (*CreateChatResponse, error)
- func (bot *Bot) CreateGroup(name, description string, openID []string) (*CreateGroupResponse, error)
- func (bot Bot) DeleteAPIRequest(prefix, urlPath string, auth bool, params interface{}, output interface{}) error
- func (bot Bot) DeleteChat(chatID string) (*DeleteChatResponse, error)
- func (bot Bot) DeleteEphemeralMessage(messageID string) (*DeleteEphemeralMessageResponse, error)
- func (bot *Bot) DeleteGroupMember(openChatID string, openID []string) (*DeleteGroupMemberResponse, error)
- func (bot Bot) DeleteReaction(messageID string, reactionID string) (*ReactionResponse, error)
- func (bot Bot) DeleteTopNotice(chatID string) (*DeleteChatResponse, error)
- func (bot *Bot) DisbandGroup(openChatID string) (*DisbandGroupResponse, error)
- func (bot Bot) DoAPIRequest(method string, prefix, urlPath string, header http.Header, auth bool, ...) error
- func (bot Bot) Domain() string
- func (bot Bot) ExpandURL(urlPath string) string
- func (bot Bot) ForwardMessage(messageID string, receiveID *OptionalUserID) (*ForwardMessageResponse, error)
- func (bot Bot) GetAPIRequest(prefix, urlPath string, auth bool, params interface{}, output interface{}) error
- func (bot *Bot) GetAccessTokenInternal(updateToken bool) (*AuthTokenInternalResponse, error)
- func (bot *Bot) GetBotInfo() (*GetBotInfoResponse, error)
- func (bot Bot) GetChat(chatID string) (*GetChatResponse, error)
- func (bot Bot) GetChatMembers(chatID string, pageToken string, pageSize int) (*GetChatMembersResponse, error)
- func (bot *Bot) GetGroupInfo(openChatID string) (*GroupInfoResponse, error)
- func (bot *Bot) GetGroupList(pageNum, pageSize int) (*GroupListResponse, error)
- func (bot Bot) GetMessage(messageID string) (*GetMessageResponse, error)
- func (bot *Bot) GetTenantAccessTokenInternal(updateToken bool) (*TenantAuthTokenInternalResponse, error)
- func (bot Bot) GetUserInfo(userID *OptionalUserID) (*GetUserInfoResponse, error)
- func (bot Bot) IsInChat(chatID string) (*IsInChatResponse, error)
- func (bot Bot) JoinChat(chatID string) (*JoinChatResponse, error)
- func (bot Bot) ListChat(sortType string, pageToken string, pageSize int) (*ListChatResponse, error)
- func (bot Bot) Logger() LogWrapper
- func (bot Bot) MessageReadReceipt(messageID string) (*MessageReceiptResponse, error)
- func (bot Bot) PatchAPIRequest(prefix, urlPath string, auth bool, params interface{}, output interface{}) error
- func (bot Bot) PinMessage(messageID string) (*PinMessageResponse, error)
- func (bot Bot) PostAPIRequest(prefix, urlPath string, auth bool, params interface{}, output interface{}) error
- func (bot Bot) PostEphemeralMessage(om OutcomingMessage) (*PostEphemeralMessageResponse, error)
- func (bot Bot) PostImage(imageKey string, userID *OptionalUserID) (*PostMessageResponse, error)
- func (bot Bot) PostMessage(om OutcomingMessage) (*PostMessageResponse, error)
- func (bot *Bot) PostNotification(title, text string) (*PostNotificationResp, error)
- func (bot *Bot) PostNotificationV2(om OutcomingMessage) (*PostNotificationV2Resp, error)
- func (bot Bot) PostRichText(postContent *PostContent, userID *OptionalUserID) (*PostMessageResponse, error)
- func (bot Bot) PostShareChat(chatID string, userID *OptionalUserID) (*PostMessageResponse, error)
- func (bot Bot) PostShareUser(openID string, userID *OptionalUserID) (*PostMessageResponse, error)
- func (bot Bot) PostText(text string, userID *OptionalUserID) (*PostMessageResponse, error)
- func (bot Bot) PostTextMention(text string, atUserID string, userID *OptionalUserID) (*PostMessageResponse, error)
- func (bot Bot) PostTextMentionAll(text string, userID *OptionalUserID) (*PostMessageResponse, error)
- func (bot Bot) PostTextMentionAndReply(text string, atUserID string, userID *OptionalUserID, replyID string) (*PostMessageResponse, error)
- func (bot Bot) PutAPIRequest(prefix, urlPath string, auth bool, params interface{}, output interface{}) error
- func (bot Bot) RecallMessage(messageID string) (*RecallMessageResponse, error)
- func (bot *Bot) RemoveBotFromGroup(openChatID string) (*RemoveBotFromGroupResponse, error)
- func (bot Bot) RemoveChatMember(chatID string, idList []string) (*RemoveChatMemberResponse, error)
- func (bot Bot) ReplyMessage(om OutcomingMessage) (*PostMessageResponse, error)
- func (bot Bot) SearchChat(query string, pageToken string, pageSize int) (*ListChatResponse, error)
- func (bot *Bot) SetClient(c *http.Client)
- func (bot *Bot) SetCustomClient(c HTTPWrapper)
- func (bot *Bot) SetDomain(domain string)
- func (bot *Bot) SetLogger(logger LogWrapper)
- func (bot Bot) SetTopNotice(chatID, actionType, messageID string) (*SetTopNoticeResponse, error)
- func (bot *Bot) SetWebhook(url string)
- func (bot *Bot) StartHeartbeat() error
- func (bot *Bot) StopHeartbeat()
- func (bot Bot) TenantAccessToken() string
- func (bot Bot) UnpinMessage(messageID string) (*UnpinMessageResponse, error)
- func (bot *Bot) UnsetCustomClient()
- func (bot Bot) UpdateChat(chatID string, req UpdateChatRequest) (*UpdateChatResponse, error)
- func (bot *Bot) UpdateGroupInfo(params *UpdateGroupInfoReq) (*UpdateGroupInfoResponse, error)
- func (bot Bot) UpdateMessage(messageID string, om OutcomingMessage) (*UpdateMessageResponse, error)
- func (bot Bot) UploadFile(req UploadFileRequest) (*UploadFileResponse, error)
- func (bot Bot) UploadImage(path string) (*UploadImageResponse, error)
- func (bot Bot) UploadImageObject(img image.Image) (*UploadImageResponse, error)
- func (bot *Bot) WithContext(ctx context.Context) *Bot
- func (bot *Bot) WithUserIDType(userIDType string) *Bot
- type CardBuilder
- func (CardBuilder) Action(actions ...card.Element) *card.ActionBlock
- func (CardBuilder) Button(text *card.TextBlock) *card.ButtonBlock
- func (CardBuilder) Card(elements ...card.Element) *card.Block
- func (CardBuilder) Column(elements ...card.Element) *card.ColumnBlock
- func (CardBuilder) ColumnSet(columns ...*card.ColumnBlock) *card.ColumnSetBlock
- func (CardBuilder) ColumnSetAction(url *card.URLBlock) *card.ColumnSetActionBlock
- func (CardBuilder) Confirm(title, text string) *card.ConfirmBlock
- func (CardBuilder) DatePicker() *card.DatePickerBlock
- func (CardBuilder) DatetimePicker() *card.DatetimePickerBlock
- func (CardBuilder) Div(fields ...*card.FieldBlock) *card.DivBlock
- func (CardBuilder) Field(text *card.TextBlock) *card.FieldBlock
- func (CardBuilder) Hr() *card.HrBlock
- func (CardBuilder) Img(key string) *card.ImgBlock
- func (CardBuilder) Markdown(s string) *card.MarkdownBlock
- func (CardBuilder) Note() *card.NoteBlock
- func (CardBuilder) Option(value string) *card.OptionBlock
- func (CardBuilder) Overflow(options ...*card.OptionBlock) *card.OverflowBlock
- func (CardBuilder) SelectMenu(options ...*card.OptionBlock) *card.SelectMenuBlock
- func (CardBuilder) Text(s string) *card.TextBlock
- func (CardBuilder) TimePicker() *card.TimePickerBlock
- func (CardBuilder) URL() *card.URLBlock
- type CardContent
- type ChatInfo
- type ChatListInfo
- type ChatMember
- type ChatTopNoticeAction
- type CreateChatRequest
- type CreateChatResponse
- type CreateGroupResponse
- type DeleteChatResponse
- type DeleteEphemeralMessageResponse
- type DeleteGroupMemberResponse
- type DeleteTopNoticeResponse
- type DisbandGroupResponse
- type EmojiType
- type EncryptedReq
- type EventBody
- type EventCardAction
- type EventCardCallback
- type EventChallenge
- type EventChallengeReq
- type EventMessage
- type EventV2
- func (e EventV2) GetBotAdded() (*EventV2BotAdded, error)
- func (e EventV2) GetBotDeleted() (*EventV2BotDeleted, error)
- func (e EventV2) GetChatDisbanded() (*EventV2ChatDisbanded, error)
- func (e EventV2) GetEvent(eventType string, body interface{}) error
- func (e EventV2) GetMessageReactionCreated() (*EventV2MessageReactionCreated, error)
- func (e EventV2) GetMessageReactionDeleted() (*EventV2MessageReactionDeleted, error)
- func (e EventV2) GetMessageRead() (*EventV2MessageRead, error)
- func (e EventV2) GetMessageRecalled() (*EventV2MessageRecalled, error)
- func (e EventV2) GetMessageReceived() (*EventV2MessageReceived, error)
- func (e EventV2) GetUserAdded() (*EventV2UserAdded, error)
- func (e EventV2) GetUserDeleted() (*EventV2UserDeleted, error)
- func (e EventV2) PostEvent(client *http.Client, hookURL string) (*http.Response, error)
- type EventV2BotAdded
- type EventV2BotDeleted
- type EventV2ChatDisbanded
- type EventV2Header
- type EventV2MessageReactionCreated
- type EventV2MessageReactionDeleted
- type EventV2MessageRead
- type EventV2MessageRecalled
- type EventV2MessageReceived
- type EventV2UserAdded
- type EventV2UserDeleted
- type EventV2UserID
- type FileContent
- type ForwardMessageResponse
- type GetBotInfoResponse
- type GetChatMembersResponse
- type GetChatResponse
- type GetMessageResponse
- type GetUserInfoResponse
- type GroupInfoResponse
- type GroupListResponse
- type HTTPWrapper
- type I18NNames
- type IMBody
- type IMMention
- type IMMessage
- type IMMessageRequest
- type IMSender
- type ImageContent
- type IsInChatResponse
- type JoinChatResponse
- type ListChatResponse
- type LogLevel
- type LogWrapper
- type MediaContent
- type MessageContent
- type MessageReceiptResponse
- type MsgBuffer
- func (m *MsgBuffer) Audio(fileKey string) *MsgBuffer
- func (m *MsgBuffer) BindChatID(chatID string) *MsgBuffer
- func (m *MsgBuffer) BindEmail(email string) *MsgBuffer
- func (m *MsgBuffer) BindOpenChatID(openChatID string) *MsgBuffer
- func (m *MsgBuffer) BindOpenID(openID string) *MsgBuffer
- func (m *MsgBuffer) BindReply(rootID string) *MsgBuffer
- func (m *MsgBuffer) BindUnionID(unionID string) *MsgBuffer
- func (m *MsgBuffer) BindUserID(userID string) *MsgBuffer
- func (m *MsgBuffer) Build() OutcomingMessage
- func (m *MsgBuffer) Card(cardContent string) *MsgBuffer
- func (m *MsgBuffer) Clear() *MsgBuffer
- func (m *MsgBuffer) Error() error
- func (m *MsgBuffer) File(fileKey string) *MsgBuffer
- func (m *MsgBuffer) Image(imageKey string) *MsgBuffer
- func (m *MsgBuffer) Media(fileKey, imageKey string) *MsgBuffer
- func (m *MsgBuffer) Post(postContent *PostContent) *MsgBuffer
- func (m *MsgBuffer) ReplyInThread(replyInThread bool) *MsgBuffer
- func (m *MsgBuffer) ShareChat(chatID string) *MsgBuffer
- func (m *MsgBuffer) ShareUser(userID string) *MsgBuffer
- func (m *MsgBuffer) Sticker(fileKey string) *MsgBuffer
- func (m *MsgBuffer) Text(text string) *MsgBuffer
- func (m *MsgBuffer) WithSign(secret string, ts int64) *MsgBuffer
- func (m *MsgBuffer) WithUUID(uuid string) *MsgBuffer
- type MsgPostBuilder
- func (pb *MsgPostBuilder) AtTag(text, userID string) *MsgPostBuilder
- func (pb *MsgPostBuilder) Clear()
- func (pb *MsgPostBuilder) CurLocale() *PostBuf
- func (pb *MsgPostBuilder) ImageTag(imageKey string, imageWidth, imageHeight int) *MsgPostBuilder
- func (pb MsgPostBuilder) Len() int
- func (pb *MsgPostBuilder) LinkTag(text, href string) *MsgPostBuilder
- func (pb *MsgPostBuilder) Locale(locale string) *MsgPostBuilder
- func (pb *MsgPostBuilder) Render() *PostContent
- func (pb *MsgPostBuilder) TextTag(text string, lines int, unescape bool) *MsgPostBuilder
- func (pb *MsgPostBuilder) Title(title string) *MsgPostBuilder
- func (pb *MsgPostBuilder) WithLocale(locale string) *MsgPostBuilder
- type MsgTextBuilder
- func (tb *MsgTextBuilder) Clear()
- func (tb MsgTextBuilder) Len() int
- func (tb *MsgTextBuilder) Mention(userID string) *MsgTextBuilder
- func (tb *MsgTextBuilder) MentionAll() *MsgTextBuilder
- func (tb *MsgTextBuilder) Render() string
- func (tb *MsgTextBuilder) Text(text ...interface{}) *MsgTextBuilder
- func (tb *MsgTextBuilder) Textf(textFmt string, text ...interface{}) *MsgTextBuilder
- func (tb *MsgTextBuilder) Textln(text ...interface{}) *MsgTextBuilder
- type OptionalUserID
- type OutcomingMessage
- type PinMessageResponse
- type PostBody
- type PostBuf
- type PostContent
- type PostElem
- type PostEphemeralMessageResponse
- type PostMessageResponse
- type PostNotificationResp
- type PostNotificationV2Resp
- type ReactionResponse
- type RecallMessageResponse
- type RemoveBotFromGroupResponse
- type RemoveChatMemberRequest
- type RemoveChatMemberResponse
- type SetTopNoticeRequest
- type SetTopNoticeResponse
- type ShareChatContent
- type ShareUserContent
- type StickerContent
- type TenantAuthTokenInternalResponse
- type TextContent
- type UnpinMessageResponse
- type UpdateChatRequest
- type UpdateChatResponse
- type UpdateGroupInfoReq
- type UpdateGroupInfoResponse
- type UpdateMessageResponse
- type UploadFileRequest
- type UploadFileResponse
- type UploadImageResponse
- type UserAvatar
- type UserInfo
- type UserStatus
Constants ¶
const ( EventTypeMessageReceived = "im.message.receive_v1" EventTypeMessageRead = "im.message.message_read_v1" EventTypeMessageRecalled = "im.message.recalled_v1" EventTypeMessageReactionCreated = "im.message.reaction.created_v1" EventTypeMessageReactionDeleted = "im.message.reaction.deleted_v1" EventTypeChatDisbanded = "im.chat.disbanded_v1" EventTypeUserAdded = "im.chat.member.user.added_v1" EventTypeUserDeleted = "im.chat.member.user.deleted_v1" EventTypeBotAdded = "im.chat.member.bot.added_v1" EventTypeBotDeleted = "im.chat.member.bot.deleted_v1" // not supported yet EventTypeChatUpdated = "im.chat.updated_v1" EventTypeUserWithdrawn = "im.chat.member.user.withdrawn_v1" )
EventType definitions
const ( // ChatBot should be created with NewChatBot // Create from https://open.feishu.cn/ or https://open.larksuite.com/ ChatBot = iota // NotificationBot for webhook, behave as a simpler notification bot // Create from Lark group NotificationBot )
const ( DomainFeishu = "https://open.feishu.cn" DomainLark = "https://open.larksuite.com" )
Domains
const ( LocaleZhCN = "zh_cn" LocaleZhHK = "zh_hk" LocaleZhTW = "zh_tw" LocaleEnUS = "en_us" LocaleJaJP = "ja_jp" )
Supported Lark locales
const ( LogLevelTrace = iota + 1 LogLevelDebug LogLevelInfo LogLevelWarn LogLevelError )
LogLevels
const ( MsgText = "text" MsgPost = "post" MsgInteractive = "interactive" MsgImage = "image" MsgAudio = "audio" MsgMedia = "media" MsgFile = "file" MsgSticker = "sticker" )
Msg Types
const ( UIDEmail = "email" UIDUserID = "user_id" UIDOpenID = "open_id" UIDChatID = "chat_id" UIDUnionID = "union_id" )
UID types
Variables ¶
var ( ErrBotTypeError = errors.New("Bot type error") ErrParamUserID = errors.New("Param error: UserID") ErrParamMessageID = errors.New("Param error: Message ID") ErrParamExceedInputLimit = errors.New("Param error: Exceed input limit") ErrMessageTypeNotSuppored = errors.New("Message type not supported") ErrEncryptionNotEnabled = errors.New("Encryption is not enabled") ErrCustomHTTPClientNotSet = errors.New("Custom HTTP client not set") ErrMessageNotBuild = errors.New("Message not build") ErrUnsupportedUIDType = errors.New("Unsupported UID type") ErrInvalidReceiveID = errors.New("Invalid receive ID") ErrEventTypeNotMatch = errors.New("Event type not match") ErrMessageType = errors.New("Message type error") )
Errors
Functions ¶
func BuildOutcomingMessageReq ¶
func BuildOutcomingMessageReq(om OutcomingMessage) map[string]interface{}
BuildOutcomingMessageReq for msg builder
func DownloadFile ¶
DownloadFile downloads from a URL to local path
Types ¶
type AddChatMemberRequest ¶
type AddChatMemberRequest struct {
IDList []string `json:"id_list"`
}
AddChatMemberRequest .
type AddChatMemberResponse ¶
type AddChatMemberResponse struct { BaseResponse Data struct { InvalidIDList []string `json:"invalid_id_list"` NotExistedIDList []string `json:"not_existed_id_list"` } `json:"data"` }
AddChatMemberResponse .
type AddGroupMemberResponse ¶
type AddGroupMemberResponse struct { BaseResponse InvalidOpenID []string `json:"invalid_open_ids"` }
AddGroupMemberResponse .
type AuthTokenInternalResponse ¶
type AuthTokenInternalResponse struct { BaseResponse AppAccessToken string `json:"app_access_token"` Expire int `json:"expire"` }
AuthTokenInternalResponse .
type BaseResponse ¶
BaseResponse of an API
type BatchGetUserInfoResponse ¶
type BatchGetUserInfoResponse struct { BaseResponse Data struct { Items []UserInfo } }
BatchGetUserInfoResponse .
type Bot ¶
type Bot struct {
// contains filtered or unexported fields
}
Bot definition
func (Bot) AccessToken ¶
AccessToken returns bot.accessToken for external use
func (*Bot) AddBotToGroup ¶
func (bot *Bot) AddBotToGroup(openChatID string) (*AddBotToGroupResponse, error)
AddBotToGroup .
func (Bot) AddChatMember ¶
func (bot Bot) AddChatMember(chatID string, idList []string) (*AddChatMemberResponse, error)
AddChatMember .
func (*Bot) AddGroupMember ¶
func (bot *Bot) AddGroupMember(openChatID string, openID []string) (*AddGroupMemberResponse, error)
AddGroupMember adds a group member
func (*Bot) AddGroupMemberByUserID ¶
func (bot *Bot) AddGroupMemberByUserID(openChatID string, userID []string) (*AddGroupMemberResponse, error)
AddGroupMemberByUserID adds a group member
func (Bot) AddReaction ¶
func (bot Bot) AddReaction(messageID string, emojiType EmojiType) (*ReactionResponse, error)
AddReaction adds reaction to a message
func (Bot) BatchGetUserInfo ¶
func (bot Bot) BatchGetUserInfo(userIDType string, userIDs ...string) (*BatchGetUserInfoResponse, error)
BatchGetUserInfo gets contact info in batch
func (Bot) CreateChat ¶
func (bot Bot) CreateChat(req CreateChatRequest) (*CreateChatResponse, error)
CreateChat .
func (*Bot) CreateGroup ¶
func (bot *Bot) CreateGroup(name, description string, openID []string) (*CreateGroupResponse, error)
CreateGroup creates a group
func (Bot) DeleteAPIRequest ¶
func (bot Bot) DeleteAPIRequest(prefix, urlPath string, auth bool, params interface{}, output interface{}) error
DeleteAPIRequest call Lark API
func (Bot) DeleteChat ¶
func (bot Bot) DeleteChat(chatID string) (*DeleteChatResponse, error)
DeleteChat .
func (Bot) DeleteEphemeralMessage ¶
func (bot Bot) DeleteEphemeralMessage(messageID string) (*DeleteEphemeralMessageResponse, error)
DeleteEphemeralMessage deletes an ephemeral message
func (*Bot) DeleteGroupMember ¶
func (bot *Bot) DeleteGroupMember(openChatID string, openID []string) (*DeleteGroupMemberResponse, error)
DeleteGroupMember deletes a group member
func (Bot) DeleteReaction ¶
func (bot Bot) DeleteReaction(messageID string, reactionID string) (*ReactionResponse, error)
DeleteReaction deletes reaction of a message
func (Bot) DeleteTopNotice ¶
func (bot Bot) DeleteTopNotice(chatID string) (*DeleteChatResponse, error)
DeleteTopNotice .
func (*Bot) DisbandGroup ¶
func (bot *Bot) DisbandGroup(openChatID string) (*DisbandGroupResponse, error)
DisbandGroup .
func (Bot) DoAPIRequest ¶
func (bot Bot) DoAPIRequest( method string, prefix, urlPath string, header http.Header, auth bool, body io.Reader, output interface{}, ) error
DoAPIRequest builds http request
func (Bot) ForwardMessage ¶
func (bot Bot) ForwardMessage(messageID string, receiveID *OptionalUserID) (*ForwardMessageResponse, error)
ForwardMessage forwards a message
func (Bot) GetAPIRequest ¶
func (bot Bot) GetAPIRequest(prefix, urlPath string, auth bool, params interface{}, output interface{}) error
GetAPIRequest call Lark API
func (*Bot) GetAccessTokenInternal ¶
func (bot *Bot) GetAccessTokenInternal(updateToken bool) (*AuthTokenInternalResponse, error)
GetAccessTokenInternal gets AppAccessToken for internal use
func (*Bot) GetBotInfo ¶
func (bot *Bot) GetBotInfo() (*GetBotInfoResponse, error)
GetBotInfo returns bot info
func (Bot) GetChatMembers ¶
func (bot Bot) GetChatMembers(chatID string, pageToken string, pageSize int) (*GetChatMembersResponse, error)
GetChatMembers . NOTICE: pageSize must be larger than 10, e.g. if you present pageSize=1, it returns the same pageToken as pageSize=10. So we recommend you just pass pageSize=10.
func (*Bot) GetGroupInfo ¶
func (bot *Bot) GetGroupInfo(openChatID string) (*GroupInfoResponse, error)
GetGroupInfo returns group info
func (*Bot) GetGroupList ¶
func (bot *Bot) GetGroupList(pageNum, pageSize int) (*GroupListResponse, error)
GetGroupList returns group list
func (Bot) GetMessage ¶
func (bot Bot) GetMessage(messageID string) (*GetMessageResponse, error)
GetMessage gets a message with im/v1
func (*Bot) GetTenantAccessTokenInternal ¶
func (bot *Bot) GetTenantAccessTokenInternal(updateToken bool) (*TenantAuthTokenInternalResponse, error)
GetTenantAccessTokenInternal gets AppAccessToken for internal use
func (Bot) GetUserInfo ¶
func (bot Bot) GetUserInfo(userID *OptionalUserID) (*GetUserInfoResponse, error)
GetUserInfo gets contact info
func (Bot) MessageReadReceipt ¶
func (bot Bot) MessageReadReceipt(messageID string) (*MessageReceiptResponse, error)
MessageReadReceipt queries message read receipt
func (Bot) PatchAPIRequest ¶
func (bot Bot) PatchAPIRequest(prefix, urlPath string, auth bool, params interface{}, output interface{}) error
PatchAPIRequest call Lark API
func (Bot) PinMessage ¶
func (bot Bot) PinMessage(messageID string) (*PinMessageResponse, error)
PinMessage pins a message
func (Bot) PostAPIRequest ¶
func (bot Bot) PostAPIRequest(prefix, urlPath string, auth bool, params interface{}, output interface{}) error
PostAPIRequest call Lark API
func (Bot) PostEphemeralMessage ¶
func (bot Bot) PostEphemeralMessage(om OutcomingMessage) (*PostEphemeralMessageResponse, error)
PostEphemeralMessage posts an ephemeral message
func (Bot) PostImage ¶
func (bot Bot) PostImage(imageKey string, userID *OptionalUserID) (*PostMessageResponse, error)
PostImage is a simple way to send image
func (Bot) PostMessage ¶
func (bot Bot) PostMessage(om OutcomingMessage) (*PostMessageResponse, error)
PostMessage posts a message
func (*Bot) PostNotification ¶
func (bot *Bot) PostNotification(title, text string) (*PostNotificationResp, error)
PostNotification send message to a webhook deprecated: legacy version, please use PostNotificationV2 instead
func (*Bot) PostNotificationV2 ¶
func (bot *Bot) PostNotificationV2(om OutcomingMessage) (*PostNotificationV2Resp, error)
PostNotificationV2 support v2 format
func (Bot) PostRichText ¶
func (bot Bot) PostRichText(postContent *PostContent, userID *OptionalUserID) (*PostMessageResponse, error)
PostRichText is a simple way to send rich text messages
func (Bot) PostShareChat ¶
func (bot Bot) PostShareChat(chatID string, userID *OptionalUserID) (*PostMessageResponse, error)
PostShareChat is a simple way to share chat
func (Bot) PostShareUser ¶
func (bot Bot) PostShareUser(openID string, userID *OptionalUserID) (*PostMessageResponse, error)
PostShareUser is a simple way to share user
func (Bot) PostText ¶
func (bot Bot) PostText(text string, userID *OptionalUserID) (*PostMessageResponse, error)
PostText is a simple way to send text messages
func (Bot) PostTextMention ¶
func (bot Bot) PostTextMention(text string, atUserID string, userID *OptionalUserID) (*PostMessageResponse, error)
PostTextMention is a simple way to send text messages with @user
func (Bot) PostTextMentionAll ¶
func (bot Bot) PostTextMentionAll(text string, userID *OptionalUserID) (*PostMessageResponse, error)
PostTextMentionAll is a simple way to send text messages with @all
func (Bot) PostTextMentionAndReply ¶
func (bot Bot) PostTextMentionAndReply(text string, atUserID string, userID *OptionalUserID, replyID string) (*PostMessageResponse, error)
PostTextMentionAndReply is a simple way to send text messages with @user and reply a message
func (Bot) PutAPIRequest ¶
func (bot Bot) PutAPIRequest(prefix, urlPath string, auth bool, params interface{}, output interface{}) error
PutAPIRequest call Lark API
func (Bot) RecallMessage ¶
func (bot Bot) RecallMessage(messageID string) (*RecallMessageResponse, error)
RecallMessage recalls a message with ID
func (*Bot) RemoveBotFromGroup ¶
func (bot *Bot) RemoveBotFromGroup(openChatID string) (*RemoveBotFromGroupResponse, error)
RemoveBotFromGroup .
func (Bot) RemoveChatMember ¶
func (bot Bot) RemoveChatMember(chatID string, idList []string) (*RemoveChatMemberResponse, error)
RemoveChatMember .
func (Bot) ReplyMessage ¶
func (bot Bot) ReplyMessage(om OutcomingMessage) (*PostMessageResponse, error)
ReplyMessage replies a message
func (Bot) SearchChat ¶
SearchChat search chat
func (*Bot) SetDomain ¶
SetDomain set domain of endpoint, so we could call Feishu/Lark go-lark does not check your host, just use the right one or fail.
func (Bot) SetTopNotice ¶
func (bot Bot) SetTopNotice(chatID, actionType, messageID string) (*SetTopNoticeResponse, error)
SetTopNotice .
func (*Bot) StartHeartbeat ¶
StartHeartbeat renew auth token periodically
func (Bot) TenantAccessToken ¶
TenantAccessToken returns bot.tenantAccessToken for external use
func (Bot) UnpinMessage ¶
func (bot Bot) UnpinMessage(messageID string) (*UnpinMessageResponse, error)
UnpinMessage unpins a message
func (Bot) UpdateChat ¶
func (bot Bot) UpdateChat(chatID string, req UpdateChatRequest) (*UpdateChatResponse, error)
UpdateChat .
func (*Bot) UpdateGroupInfo ¶
func (bot *Bot) UpdateGroupInfo(params *UpdateGroupInfoReq) (*UpdateGroupInfoResponse, error)
UpdateGroupInfo update lark group info
func (Bot) UpdateMessage ¶
func (bot Bot) UpdateMessage(messageID string, om OutcomingMessage) (*UpdateMessageResponse, error)
UpdateMessage updates a message
func (Bot) UploadFile ¶
func (bot Bot) UploadFile(req UploadFileRequest) (*UploadFileResponse, error)
UploadFile uploads file to Lark server
func (Bot) UploadImage ¶
func (bot Bot) UploadImage(path string) (*UploadImageResponse, error)
UploadImage uploads image to Lark server
func (Bot) UploadImageObject ¶
func (bot Bot) UploadImageObject(img image.Image) (*UploadImageResponse, error)
UploadImageObject uploads image to Lark server
func (*Bot) WithUserIDType ¶
WithUserIDType .
type CardBuilder ¶
type CardBuilder struct {
I18N *i18nCardBuilder
}
CardBuilder .
func (CardBuilder) Action ¶
func (CardBuilder) Action(actions ...card.Element) *card.ActionBlock
Action 交互元素,可添加 Button, SelectMenu, Overflow, DatePicker, TimePicker, DatetimePicker
func (CardBuilder) Button ¶
func (CardBuilder) Button(text *card.TextBlock) *card.ButtonBlock
Button 按钮交互元素
func (CardBuilder) Card ¶
func (CardBuilder) Card(elements ...card.Element) *card.Block
Card 包裹了最外层的卡片结构
func (CardBuilder) Column ¶
func (CardBuilder) Column(elements ...card.Element) *card.ColumnBlock
Column column module
func (CardBuilder) ColumnSet ¶
func (CardBuilder) ColumnSet(columns ...*card.ColumnBlock) *card.ColumnSetBlock
ColumnSet column set module
func (CardBuilder) ColumnSetAction ¶
func (CardBuilder) ColumnSetAction(url *card.URLBlock) *card.ColumnSetActionBlock
ColumnSetAction column action module
func (CardBuilder) Confirm ¶
func (CardBuilder) Confirm(title, text string) *card.ConfirmBlock
Confirm 用于交互元素的二次确认
func (CardBuilder) DatePicker ¶
func (CardBuilder) DatePicker() *card.DatePickerBlock
DatePicker 日期选择器
func (CardBuilder) DatetimePicker ¶
func (CardBuilder) DatetimePicker() *card.DatetimePickerBlock
DatetimePicker 日期时间选择器
func (CardBuilder) Field ¶
func (CardBuilder) Field(text *card.TextBlock) *card.FieldBlock
Field 内容模块的排版元素
func (CardBuilder) Markdown ¶
func (CardBuilder) Markdown(s string) *card.MarkdownBlock
Markdown 单独使用的 Markdown 文本模块
func (CardBuilder) Option ¶
func (CardBuilder) Option(value string) *card.OptionBlock
Option 选项模块,可用于 SelectMenu 和 Overflow
func (CardBuilder) Overflow ¶
func (CardBuilder) Overflow(options ...*card.OptionBlock) *card.OverflowBlock
Overflow 折叠按钮菜单组件
func (CardBuilder) SelectMenu ¶
func (CardBuilder) SelectMenu(options ...*card.OptionBlock) *card.SelectMenuBlock
SelectMenu 菜单组件
func (CardBuilder) TimePicker ¶
func (CardBuilder) TimePicker() *card.TimePickerBlock
TimePicker 时间选择器
type ChatInfo ¶
type ChatInfo struct { ChatID string `json:"chat_id,omitempty"` Name string `json:"name,omitempty"` Avatar string `json:"avatar,omitempty"` Description string `json:"description,omitempty"` I18NNames I18NNames `json:"i18n_names,omitempty"` AddMemberPermission string `json:"add_member_permission,omitempty"` AtAllPermission string `json:"at_all_permission,omitempty"` EditPermission string `json:"edit_permission,omitempty"` OwnerIDType string `json:"owner_id_type,omitempty"` OwnerID string `json:"owner_id,omitempty"` ChatMode string `json:"chat_mode,omitempty"` ChatType string `json:"chat_type,omitempty"` ChatTag string `json:"chat_tag,omitempty"` JoinMessageVisibility string `json:"join_message_visibility,omitempty"` LeaveMessageVisibility string `json:"leave_message_visibility,omitempty"` MembershipApproval string `json:"membership_approval,omitempty"` ModerationPermission string `json:"moderation_permission,omitempty"` External bool `json:"external,omitempty"` }
ChatInfo entity of a chat, not every field is available for every API.
type ChatListInfo ¶
type ChatListInfo struct { ChatID string `json:"chat_id,omitempty"` Name string `json:"name,omitempty"` Avatar string `json:"avatar,omitempty"` Description string `json:"description,omitempty"` OwnerIDType string `json:"owner_id_type,omitempty"` OwnerID string `json:"owner_id,omitempty"` External bool `json:"external,omitempty"` TenantKey string `json:"tenant_key"` }
ChatListInfo .
type ChatMember ¶
type ChatMember struct { MemberIDType string `json:"member_id_type"` MemberID string `json:"member_id"` Name string `json:"name"` TenantKey string `json:"tenant_key"` }
ChatMember .
type ChatTopNoticeAction ¶
type ChatTopNoticeAction struct { ActionType string `json:"action_type"` MessageID string `json:"message_id"` }
ChatTopNoticeAction .
type CreateChatRequest ¶
type CreateChatRequest struct { Name string `json:"name,omitempty"` Avatar string `json:"avatar,omitempty"` Description string `json:"description,omitempty"` I18NNames I18NNames `json:"i18n_names,omitempty"` OwnerID string `json:"owner_id,omitempty"` ChatMode string `json:"chat_mode,omitempty"` ChatType string `json:"chat_type,omitempty"` JoinMessageVisibility string `json:"join_message_visibility,omitempty"` LeaveMessageVisibility string `json:"leave_message_visibility,omitempty"` MembershipApproval string `json:"membership_approval,omitempty"` External bool `json:"external,omitempty"` }
CreateChatRequest .
type CreateChatResponse ¶
type CreateChatResponse struct { BaseResponse Data ChatInfo `json:"data"` }
CreateChatResponse .
type CreateGroupResponse ¶
type CreateGroupResponse struct { BaseResponse OpenChatID string `json:"open_chat_id"` InvalidOpenID []string `json:"invalid_open_ids"` }
CreateGroupResponse .
type DeleteEphemeralMessageResponse ¶
type DeleteEphemeralMessageResponse = BaseResponse
DeleteEphemeralMessageResponse .
type DeleteGroupMemberResponse ¶
type DeleteGroupMemberResponse AddGroupMemberResponse
DeleteGroupMemberResponse .
type DeleteTopNoticeResponse ¶
type DeleteTopNoticeResponse = BaseResponse
DeleteTopNoticeResponse .
type EmojiType ¶
type EmojiType string
EmojiType .
const ( EmojiTypeOK EmojiType = "OK" EmojiTypeTHUMBSUP EmojiType = "THUMBSUP" EmojiTypeTHANKS EmojiType = "THANKS" EmojiTypeMUSCLE EmojiType = "MUSCLE" EmojiTypeFINGERHEART EmojiType = "FINGERHEART" EmojiTypeAPPLAUSE EmojiType = "APPLAUSE" EmojiTypeFISTBUMP EmojiType = "FISTBUMP" EmojiTypeJIAYI EmojiType = "JIAYI" EmojiTypeDONE EmojiType = "DONE" EmojiTypeSMILE EmojiType = "SMILE" EmojiTypeBLUSH EmojiType = "BLUSH" EmojiTypeLAUGH EmojiType = "LAUGH" EmojiTypeSMIRK EmojiType = "SMIRK" EmojiTypeLOL EmojiType = "LOL" EmojiTypeFACEPALM EmojiType = "FACEPALM" EmojiTypeLOVE EmojiType = "LOVE" EmojiTypeWINK EmojiType = "WINK" EmojiTypePROUD EmojiType = "PROUD" EmojiTypeWITTY EmojiType = "WITTY" EmojiTypeSMART EmojiType = "SMART" EmojiTypeSCOWL EmojiType = "SCOWL" EmojiTypeTHINKING EmojiType = "THINKING" EmojiTypeSOB EmojiType = "SOB" EmojiTypeCRY EmojiType = "CRY" EmojiTypeERROR EmojiType = "ERROR" EmojiTypeNOSEPICK EmojiType = "NOSEPICK" EmojiTypeHAUGHTY EmojiType = "HAUGHTY" EmojiTypeSLAP EmojiType = "SLAP" EmojiTypeSPITBLOOD EmojiType = "SPITBLOOD" EmojiTypeTOASTED EmojiType = "TOASTED" EmojiTypeGLANCE EmojiType = "GLANCE" EmojiTypeDULL EmojiType = "DULL" EmojiTypeINNOCENTSMILE EmojiType = "INNOCENTSMILE" EmojiTypeJOYFUL EmojiType = "JOYFUL" EmojiTypeWOW EmojiType = "WOW" EmojiTypeTRICK EmojiType = "TRICK" EmojiTypeYEAH EmojiType = "YEAH" EmojiTypeENOUGH EmojiType = "ENOUGH" EmojiTypeTEARS EmojiType = "TEARS" EmojiTypeEMBARRASSED EmojiType = "EMBARRASSED" EmojiTypeKISS EmojiType = "KISS" EmojiTypeSMOOCH EmojiType = "SMOOCH" EmojiTypeDROOL EmojiType = "DROOL" EmojiTypeOBSESSED EmojiType = "OBSESSED" EmojiTypeMONEY EmojiType = "MONEY" EmojiTypeTEASE EmojiType = "TEASE" EmojiTypeSHOWOFF EmojiType = "SHOWOFF" EmojiTypeCOMFORT EmojiType = "COMFORT" EmojiTypeCLAP EmojiType = "CLAP" EmojiTypePRAISE EmojiType = "PRAISE" EmojiTypeSTRIVE EmojiType = "STRIVE" EmojiTypeXBLUSH EmojiType = "XBLUSH" EmojiTypeSILENT EmojiType = "SILENT" EmojiTypeWAVE EmojiType = "WAVE" EmojiTypeWHAT EmojiType = "WHAT" EmojiTypeFROWN EmojiType = "FROWN" EmojiTypeSHY EmojiType = "SHY" EmojiTypeDIZZY EmojiType = "DIZZY" EmojiTypeLOOKDOWN EmojiType = "LOOKDOWN" EmojiTypeCHUCKLE EmojiType = "CHUCKLE" EmojiTypeWAIL EmojiType = "WAIL" EmojiTypeCRAZY EmojiType = "CRAZY" EmojiTypeWHIMPER EmojiType = "WHIMPER" EmojiTypeHUG EmojiType = "HUG" EmojiTypeBLUBBER EmojiType = "BLUBBER" EmojiTypeWRONGED EmojiType = "WRONGED" EmojiTypeHUSKY EmojiType = "HUSKY" EmojiTypeSHHH EmojiType = "SHHH" EmojiTypeSMUG EmojiType = "SMUG" EmojiTypeANGRY EmojiType = "ANGRY" EmojiTypeHAMMER EmojiType = "HAMMER" EmojiTypeSHOCKED EmojiType = "SHOCKED" EmojiTypeTERROR EmojiType = "TERROR" EmojiTypePETRIFIED EmojiType = "PETRIFIED" EmojiTypeSKULL EmojiType = "SKULL" EmojiTypeSWEAT EmojiType = "SWEAT" EmojiTypeSPEECHLESS EmojiType = "SPEECHLESS" EmojiTypeSLEEP EmojiType = "SLEEP" EmojiTypeDROWSY EmojiType = "DROWSY" EmojiTypeYAWN EmojiType = "YAWN" EmojiTypeSICK EmojiType = "SICK" EmojiTypePUKE EmojiType = "PUKE" EmojiTypeBETRAYED EmojiType = "BETRAYED" EmojiTypeHEADSET EmojiType = "HEADSET" EmojiTypeEatingFood EmojiType = "EatingFood" EmojiTypeMeMeMe EmojiType = "MeMeMe" EmojiTypeSigh EmojiType = "Sigh" EmojiTypeTyping EmojiType = "Typing" EmojiTypeLemon EmojiType = "Lemon" EmojiTypeGet EmojiType = "Get" EmojiTypeLGTM EmojiType = "LGTM" EmojiTypeOnIt EmojiType = "OnIt" EmojiTypeOneSecond EmojiType = "OneSecond" EmojiTypeVRHeadset EmojiType = "VRHeadset" EmojiTypeYouAreTheBest EmojiType = "YouAreTheBest" EmojiTypeSALUTE EmojiType = "SALUTE" EmojiTypeSHAKE EmojiType = "SHAKE" EmojiTypeHIGHFIVE EmojiType = "HIGHFIVE" EmojiTypeUPPERLEFT EmojiType = "UPPERLEFT" EmojiTypeThumbsDown EmojiType = "ThumbsDown" EmojiTypeSLIGHT EmojiType = "SLIGHT" EmojiTypeTONGUE EmojiType = "TONGUE" EmojiTypeEYESCLOSED EmojiType = "EYESCLOSED" EmojiTypeRoarForYou EmojiType = "RoarForYou" EmojiTypeCALF EmojiType = "CALF" EmojiTypeBEAR EmojiType = "BEAR" EmojiTypeBULL EmojiType = "BULL" EmojiTypeRAINBOWPUKE EmojiType = "RAINBOWPUKE" EmojiTypeROSE EmojiType = "ROSE" EmojiTypeHEART EmojiType = "HEART" EmojiTypePARTY EmojiType = "PARTY" EmojiTypeLIPS EmojiType = "LIPS" EmojiTypeBEER EmojiType = "BEER" EmojiTypeCAKE EmojiType = "CAKE" EmojiTypeGIFT EmojiType = "GIFT" EmojiTypeCUCUMBER EmojiType = "CUCUMBER" EmojiTypeDrumstick EmojiType = "Drumstick" EmojiTypePepper EmojiType = "Pepper" EmojiTypeCANDIEDHAWS EmojiType = "CANDIEDHAWS" EmojiTypeBubbleTea EmojiType = "BubbleTea" EmojiTypeCoffee EmojiType = "Coffee" EmojiTypeYes EmojiType = "Yes" EmojiTypeNo EmojiType = "No" EmojiTypeOKR EmojiType = "OKR" EmojiTypeCheckMark EmojiType = "CheckMark" EmojiTypeCrossMark EmojiType = "CrossMark" EmojiTypeMinusOne EmojiType = "MinusOne" EmojiTypeHundred EmojiType = "Hundred" EmojiTypeAWESOMEN EmojiType = "AWESOMEN" EmojiTypePin EmojiType = "Pin" EmojiTypeAlarm EmojiType = "Alarm" EmojiTypeLoudspeaker EmojiType = "Loudspeaker" EmojiTypeTrophy EmojiType = "Trophy" EmojiTypeFire EmojiType = "Fire" EmojiTypeBOMB EmojiType = "BOMB" EmojiTypeMusic EmojiType = "Music" EmojiTypeXmasTree EmojiType = "XmasTree" EmojiTypeSnowman EmojiType = "Snowman" EmojiTypeXmasHat EmojiType = "XmasHat" EmojiTypeFIREWORKS EmojiType = "FIREWORKS" EmojiType2022 EmojiType = "2022" EmojiTypeREDPACKET EmojiType = "REDPACKET" EmojiTypeFORTUNE EmojiType = "FORTUNE" EmojiTypeLUCK EmojiType = "LUCK" EmojiTypeFIRECRACKER EmojiType = "FIRECRACKER" EmojiTypeStickyRiceBalls EmojiType = "StickyRiceBalls" EmojiTypeHEARTBROKEN EmojiType = "HEARTBROKEN" EmojiTypePOOP EmojiType = "POOP" EmojiTypeStatusFlashOfInspiration EmojiType = "StatusFlashOfInspiration" EmojiType18X EmojiType = "18X" EmojiTypeCLEAVER EmojiType = "CLEAVER" EmojiTypeSoccer EmojiType = "Soccer" EmojiTypeBasketball EmojiType = "Basketball" EmojiTypeGeneralDoNotDisturb EmojiType = "GeneralDoNotDisturb" EmojiTypeStatusPrivateMessage EmojiType = "Status_PrivateMessage" EmojiTypeGeneralInMeetingBusy EmojiType = "GeneralInMeetingBusy" EmojiTypeStatusReading EmojiType = "StatusReading" EmojiTypeStatusInFlight EmojiType = "StatusInFlight" EmojiTypeGeneralBusinessTrip EmojiType = "GeneralBusinessTrip" EmojiTypeGeneralWorkFromHome EmojiType = "GeneralWorkFromHome" EmojiTypeStatusEnjoyLife EmojiType = "StatusEnjoyLife" EmojiTypeGeneralTravellingCar EmojiType = "GeneralTravellingCar" EmojiTypeStatusBus EmojiType = "StatusBus" EmojiTypeGeneralSun EmojiType = "GeneralSun" EmojiTypeGeneralMoonRest EmojiType = "GeneralMoonRest" EmojiTypePursueUltimate EmojiType = "PursueUltimate" EmojiTypePatient EmojiType = "Patient" EmojiTypeAmbitious EmojiType = "Ambitious" EmojiTypeCustomerSuccess EmojiType = "CustomerSuccess" EmojiTypeResponsible EmojiType = "Responsible" EmojiTypeReliable EmojiType = "Reliable" )
Emoji types
type EncryptedReq ¶
type EncryptedReq struct {
Encrypt string `json:"encrypt,omitempty"`
}
EncryptedReq request of encrypted challenge
type EventBody ¶
type EventBody struct { Type string `json:"type"` AppID string `json:"app_id"` TenantKey string `json:"tenant_key"` ChatType string `json:"chat_type"` MsgType string `json:"msg_type"` RootID string `json:"root_id,omitempty"` ParentID string `json:"parent_id,omitempty"` OpenID string `json:"open_id,omitempty"` OpenChatID string `json:"open_chat_id,omitempty"` OpenMessageID string `json:"open_message_id,omitempty"` IsMention bool `json:"is_mention,omitempty"` Title string `json:"title,omitempty"` Text string `json:"text,omitempty"` RealText string `json:"text_without_at_bot,omitempty"` ImageKey string `json:"image_key,omitempty"` ImageURL string `json:"image_url,omitempty"` FileKey string `json:"file_key,omitempty"` }
EventBody .
type EventCardAction ¶
type EventCardAction struct { Tag string `json:"tag,omitempty"` // button, overflow, select_static, select_person, &datepicker Option string `json:"option,omitempty"` // only for Overflow and SelectMenu Timezone string `json:"timezone,omitempty"` // only for DatePicker Value json.RawMessage `json:"value,omitempty"` // for any elements with value }
EventCardAction .
type EventCardCallback ¶
type EventCardCallback struct { AppID string `json:"app_id,omitempty"` TenantKey string `json:"tenant_key,omitempty"` Token string `json:"token,omitempty"` OpenID string `json:"open_id,omitempty"` UserID string `json:"user_id,omitempty"` MessageID string `json:"open_message_id,omitempty"` ChatID string `json:"open_chat_id,omitempty"` Action EventCardAction `json:"action,omitempty"` }
EventCardCallback request of card
type EventChallenge ¶
type EventChallenge struct { Token string `json:"token,omitempty"` Challenge string `json:"challenge,omitempty"` Type string `json:"type,omitempty"` }
EventChallenge request of add event hook
type EventChallengeReq ¶
type EventChallengeReq = EventChallenge
EventChallengeReq is deprecated. Keep for legacy versions.
type EventMessage ¶
type EventMessage struct { UUID string `json:"uuid"` Timestamp string `json:"ts"` // Token is shown by Lark to indicate it is not a fake message, check at your own need Token string `json:"token"` EventType string `json:"type"` Event EventBody `json:"event"` }
EventMessage .
type EventV2 ¶
type EventV2 struct { Schema string `json:"schema,omitempty"` Header EventV2Header `json:"header,omitempty"` EventRaw json.RawMessage `json:"event,omitempty"` Event interface{} `json:"-"` }
EventV2 handles events with v2 schema
func (EventV2) GetBotDeleted ¶
func (e EventV2) GetBotDeleted() (*EventV2BotDeleted, error)
GetBotDeleted .
func (EventV2) GetChatDisbanded ¶
func (e EventV2) GetChatDisbanded() (*EventV2ChatDisbanded, error)
GetChatDisbanded .
func (EventV2) GetMessageReactionCreated ¶
func (e EventV2) GetMessageReactionCreated() (*EventV2MessageReactionCreated, error)
GetMessageReactionCreated .
func (EventV2) GetMessageReactionDeleted ¶
func (e EventV2) GetMessageReactionDeleted() (*EventV2MessageReactionDeleted, error)
GetMessageReactionDeleted .
func (EventV2) GetMessageRead ¶
func (e EventV2) GetMessageRead() (*EventV2MessageRead, error)
GetMessageRead .
func (EventV2) GetMessageRecalled ¶
func (e EventV2) GetMessageRecalled() (*EventV2MessageRecalled, error)
GetMessageRecalled .
func (EventV2) GetMessageReceived ¶
func (e EventV2) GetMessageReceived() (*EventV2MessageReceived, error)
GetMessageReceived .
func (EventV2) GetUserAdded ¶
func (e EventV2) GetUserAdded() (*EventV2UserAdded, error)
GetUserAdded .
func (EventV2) GetUserDeleted ¶
func (e EventV2) GetUserDeleted() (*EventV2UserDeleted, error)
GetUserDeleted .
type EventV2BotAdded ¶
type EventV2BotAdded struct { ChatID string `json:"chat_id,omitempty"` OperatorID EventV2UserID `json:"operator_id,omitempty"` External bool `json:"external,omitempty"` OperatorTenantKey string `json:"operator_tenant_key,omitempty"` }
EventV2BotAdded .
type EventV2ChatDisbanded ¶
type EventV2ChatDisbanded struct { ChatID string `json:"chat_id,omitempty"` OperatorID EventV2UserID `json:"operator_id,omitempty"` External bool `json:"external,omitempty"` OperatorTenantKey string `json:"operator_tenant_key,omitempty"` }
EventV2ChatDisbanded .
type EventV2Header ¶
type EventV2Header struct { EventID string `json:"event_id,omitempty"` EventType string `json:"event_type,omitempty"` CreateTime string `json:"create_time,omitempty"` Token string `json:"token,omitempty"` AppID string `json:"app_id,omitempty"` TenantKey string `json:"tenant_key,omitempty"` }
EventV2Header .
type EventV2MessageReactionCreated ¶
type EventV2MessageReactionCreated struct { MessageID string `json:"message_id,omitempty"` OperatorType string `json:"operator_type,omitempty"` UserID EventV2UserID `json:"user_id,omitempty"` AppID string `json:"app_id,omitempty"` ActionTime string `json:"action_time,omitempty"` ReactionType struct { EmojiType string `json:"emoji_type,omitempty"` } `json:"reaction_type,omitempty"` }
EventV2MessageReactionCreated .
type EventV2MessageReactionDeleted ¶
type EventV2MessageReactionDeleted struct { MessageID string `json:"message_id,omitempty"` OperatorType string `json:"operator_type,omitempty"` UserID EventV2UserID `json:"user_id,omitempty"` AppID string `json:"app_id,omitempty"` ActionTime string `json:"action_time,omitempty"` ReactionType struct { EmojiType string `json:"emoji_type,omitempty"` } `json:"reaction_type,omitempty"` }
EventV2MessageReactionDeleted .
type EventV2MessageRead ¶
type EventV2MessageRead struct { Reader struct { ReaderID EventV2UserID `json:"reader_id,omitempty"` ReadTime string `json:"read_time,omitempty"` TenantKey string `json:"tenant_key,omitempty"` } `json:"reader,omitempty"` MessageIDList []string `json:"message_id_list,omitempty"` }
EventV2MessageRead .
type EventV2MessageRecalled ¶
type EventV2MessageRecalled struct { MessageID string `json:"message_id,omitempty"` ChatID string `json:"chat_id,omitempty"` RecallTime string `json:"recall_time,omitempty"` RecallType string `json:"recall_type,omitempty"` }
EventV2MessageRecalled .
type EventV2MessageReceived ¶
type EventV2MessageReceived struct { Sender struct { SenderID EventV2UserID `json:"sender_id,omitempty"` SenderType string `json:"sender_type,omitempty"` TenantKey string `json:"tenant_key,omitempty"` } `json:"sender,omitempty"` Message struct { MessageID string `json:"message_id,omitempty"` RootID string `json:"root_id,omitempty"` ParentID string `json:"parent_id,omitempty"` CreateTime string `json:"create_time,omitempty"` ChatID string `json:"chat_id,omitempty"` ChatType string `json:"chat_type,omitempty"` MessageType string `json:"message_type,omitempty"` Content string `json:"content,omitempty"` Mentions []struct { Key string `json:"key,omitempty"` ID EventV2UserID `json:"id,omitempty"` Name string `json:"name,omitempty"` TenantKey string `json:"tenant_key,omitempty"` } `json:"mentions,omitempty"` } `json:"message,omitempty"` }
EventV2MessageReceived .
type EventV2UserAdded ¶
type EventV2UserAdded struct { ChatID string `json:"chat_id,omitempty"` OperatorID EventV2UserID `json:"operator_id,omitempty"` External bool `json:"external,omitempty"` OperatorTenantKey string `json:"operator_tenant_key,omitempty"` Users []struct { Name string `json:"name,omitempty"` TenantKey string `json:"tenant_key,omitempty"` UserID EventV2UserID `json:"user_id,omitempty"` } `json:"users,omitempty"` }
EventV2UserAdded .
type EventV2UserID ¶
type EventV2UserID struct { UnionID string `json:"union_id,omitempty"` UserID string `json:"user_id,omitempty"` OpenID string `json:"open_id,omitempty"` }
EventV2UserID .
type FileContent ¶
type FileContent struct { FileName string `json:"file_name,omitempty"` FileKey string `json:"file_key"` }
FileContent .
type ForwardMessageResponse ¶
type ForwardMessageResponse = PostMessageResponse
ForwardMessageResponse .
type GetBotInfoResponse ¶
type GetBotInfoResponse struct { BaseResponse Bot struct { ActivateStatus int `json:"activate_status"` AppName string `json:"app_name"` AvatarURL string `json:"avatar_url"` IPWhiteList []string `json:"ip_white_list"` OpenID string `json:"open_id"` } `json:"bot"` }
GetBotInfoResponse .
type GetChatMembersResponse ¶
type GetChatMembersResponse struct { BaseResponse Data struct { Items []ChatMember `json:"items"` PageToken string `json:"page_token"` HasMore bool `json:"has_more"` MemberTotal int `json:"member_total"` } `json:"data"` }
GetChatMembersResponse .
type GetChatResponse ¶
type GetChatResponse struct { BaseResponse Data ChatInfo `json:"data"` }
GetChatResponse .
type GetMessageResponse ¶
type GetMessageResponse struct { BaseResponse Data struct { Items []IMMessage `json:"items"` } `json:"data"` }
GetMessageResponse .
type GetUserInfoResponse ¶
type GetUserInfoResponse struct { BaseResponse Data struct { User UserInfo } }
GetUserInfoResponse .
type GroupInfoResponse ¶
type GroupInfoResponse struct { BaseResponse Data struct { AddMemberVerify bool `json:"add_member_verify"` Avatar string `json:"avatar"` ChatID string `json:"chat_id"` Description string `json:"description"` GroupEmailEnabled bool `json:"group_email_enabled"` JoinMessageVisibility string `json:"join_message_visibility"` LeaveMessageVisibility string `json:"leave_message_visibility"` Members []struct { OpenID string `json:"open_id"` } `json:"members"` Name string `json:"name"` OnlyOwnerAdd bool `json:"only_owner_add"` OnlyOwnerAtAll bool `json:"only_owner_at_all"` OnlyOwnerEdit bool `json:"only_owner_edit"` OwnerOpenID string `json:"owner_open_id"` SendGroupEmailPermission string `json:"send_group_email_permission"` SendMessagePermission string `json:"send_message_permission"` ShareAllowed bool `json:"share_allowed"` Type string `json:"type"` } `json:"data"` }
GroupInfoResponse .
type GroupListResponse ¶
type GroupListResponse struct { BaseResponse HasMore bool `json:"has_more"` Chats []struct { ID string `json:"id"` Name string `json:"name"` OwnerID string `json:"owner_id"` } `json:"chats"` }
GroupListResponse .
type HTTPWrapper ¶
type HTTPWrapper interface { Do( ctx context.Context, method, url string, header http.Header, body io.Reader) (io.ReadCloser, error) }
HTTPWrapper is a wrapper interface, which enables extension on HTTP part. Typicall, we do not need this because default client is sufficient.
type I18NNames ¶
type I18NNames struct { ZhCN string `json:"zh_cn,omitempty"` EnUS string `json:"en_us,omitempty"` JaJP string `json:"ja_jp,omitempty"` }
I18NNames .
type IMMention ¶
type IMMention struct { ID string `json:"id"` IDType string `json:"id_type"` Key string `json:"key"` Name string `json:"name"` }
IMMention .
type IMMessage ¶
type IMMessage struct { MessageID string `json:"message_id"` UpperMessageID string `json:"upper_message_id"` RootID string `json:"root_id"` ParentID string `json:"parent_id"` ThreadID string `json:"thread_id"` ChatID string `json:"chat_id"` MsgType string `json:"msg_type"` CreateTime string `json:"create_time"` UpdateTime string `json:"update_time"` Deleted bool `json:"deleted"` Updated bool `json:"updated"` Sender IMSender `json:"sender"` Mentions []IMMention `json:"mentions"` Body IMBody `json:"body"` }
IMMessage .
type IMMessageRequest ¶
type IMMessageRequest struct { Content string `json:"content"` MsgType string `json:"msg_type,omitempty"` ReceiveID string `json:"receive_id,omitempty"` UUID string `json:"uuid,omitempty"` ReplyInThread bool `json:"reply_in_thread,omitempty"` }
IMMessageRequest .
func BuildMessage ¶
func BuildMessage(om OutcomingMessage) (*IMMessageRequest, error)
BuildMessage .
type IMSender ¶
type IMSender struct { ID string `json:"id"` IDType string `json:"id_type"` SenderType string `json:"sender_type"` TenantKey string `json:"tenant_key"` }
IMSender .
type IsInChatResponse ¶
type IsInChatResponse struct { BaseResponse Data struct { IsInChat bool `json:"is_in_chat"` } `json:"data"` }
IsInChatResponse .
type ListChatResponse ¶
type ListChatResponse struct { BaseResponse Data struct { Items []ChatListInfo `json:"items"` PageToken string `json:"page_token"` HasMore bool `json:"has_more"` } `json:"data"` }
ListChatResponse .
type LogWrapper ¶
type LogWrapper interface { // for log print Log(context.Context, LogLevel, string) // for test redirection SetOutput(io.Writer) }
LogWrapper interface
type MediaContent ¶
type MediaContent struct { FileName string `json:"file_name,omitempty"` FileKey string `json:"file_key"` ImageKey string `json:"image_key"` Duration int `json:"duration,omitempty"` }
MediaContent .
type MessageContent ¶
type MessageContent struct { Text *TextContent `json:"text,omitempty"` Image *ImageContent `json:"image,omitempty"` Post *PostContent `json:"post,omitempty"` Card *CardContent `json:"card,omitempty"` Audio *AudioContent `json:"audio,omitempty"` Media *MediaContent `json:"media,omitempty"` File *FileContent `json:"file,omitempty"` Sticker *StickerContent `json:"sticker,omitempty"` }
MessageContent struct of message content
type MessageReceiptResponse ¶
type MessageReceiptResponse struct { BaseResponse Data struct { ReadUsers []struct { OpenID string `json:"open_id"` UserID string `json:"user_id"` Timestamp string `json:"timestamp"` } `json:"read_users"` } `json:"data"` }
MessageReceiptResponse .
type MsgBuffer ¶
type MsgBuffer struct {
// contains filtered or unexported fields
}
MsgBuffer stores all the messages attached You can call every function, but some of which is only available for specific condition
func NewMsgBuffer ¶
NewMsgBuffer create a message buffer
func (*MsgBuffer) BindChatID ¶
BindChatID binds chat_id
func (*MsgBuffer) BindOpenChatID ¶
BindOpenChatID binds open_chat_id
func (*MsgBuffer) BindOpenID ¶
BindOpenID binds open_id
func (*MsgBuffer) BindReply ¶
BindReply binds root id for reply rootID is OpenMessageID of the message you reply
func (*MsgBuffer) BindUnionID ¶
BindUnionID binds union_id
func (*MsgBuffer) BindUserID ¶
BindUserID binds open_id
func (*MsgBuffer) Build ¶
func (m *MsgBuffer) Build() OutcomingMessage
Build message and return message body
func (*MsgBuffer) Post ¶
func (m *MsgBuffer) Post(postContent *PostContent) *MsgBuffer
Post sets raw post content
func (*MsgBuffer) ReplyInThread ¶
ReplyInThread replies message in thread
type MsgPostBuilder ¶
type MsgPostBuilder struct {
// contains filtered or unexported fields
}
MsgPostBuilder for build text buf
func (*MsgPostBuilder) AtTag ¶
func (pb *MsgPostBuilder) AtTag(text, userID string) *MsgPostBuilder
AtTag creates an at tag
func (*MsgPostBuilder) CurLocale ¶
func (pb *MsgPostBuilder) CurLocale() *PostBuf
CurLocale switches to locale and returns the buffer of that locale
func (*MsgPostBuilder) ImageTag ¶
func (pb *MsgPostBuilder) ImageTag(imageKey string, imageWidth, imageHeight int) *MsgPostBuilder
ImageTag creates an image tag
func (*MsgPostBuilder) LinkTag ¶
func (pb *MsgPostBuilder) LinkTag(text, href string) *MsgPostBuilder
LinkTag creates a link tag
func (*MsgPostBuilder) Locale ¶
func (pb *MsgPostBuilder) Locale(locale string) *MsgPostBuilder
Locale renamed to WithLocale but still available
func (*MsgPostBuilder) TextTag ¶
func (pb *MsgPostBuilder) TextTag(text string, lines int, unescape bool) *MsgPostBuilder
TextTag creates a text tag
func (*MsgPostBuilder) Title ¶
func (pb *MsgPostBuilder) Title(title string) *MsgPostBuilder
Title sets title
func (*MsgPostBuilder) WithLocale ¶
func (pb *MsgPostBuilder) WithLocale(locale string) *MsgPostBuilder
WithLocale switches to locale and returns self
type MsgTextBuilder ¶
type MsgTextBuilder struct {
// contains filtered or unexported fields
}
MsgTextBuilder for build text buf
func (*MsgTextBuilder) Mention ¶
func (tb *MsgTextBuilder) Mention(userID string) *MsgTextBuilder
Mention @somebody
func (*MsgTextBuilder) MentionAll ¶
func (tb *MsgTextBuilder) MentionAll() *MsgTextBuilder
MentionAll @all
func (*MsgTextBuilder) Text ¶
func (tb *MsgTextBuilder) Text(text ...interface{}) *MsgTextBuilder
Text add simple texts
func (*MsgTextBuilder) Textf ¶
func (tb *MsgTextBuilder) Textf(textFmt string, text ...interface{}) *MsgTextBuilder
Textf add texts with format
func (*MsgTextBuilder) Textln ¶
func (tb *MsgTextBuilder) Textln(text ...interface{}) *MsgTextBuilder
Textln add simple texts with a newline
type OptionalUserID ¶
OptionalUserID to contain openID, chatID, userID, email
func WithUnionID ¶
func WithUnionID(unionID string) *OptionalUserID
WithUnionID uses chatID as userID
type OutcomingMessage ¶
type OutcomingMessage struct { MsgType string `json:"msg_type"` Content MessageContent `json:"content"` Card CardContent `json:"card"` // ID for user UIDType string `json:"-"` OpenID string `json:"open_id,omitempty"` Email string `json:"email,omitempty"` UserID string `json:"user_id,omitempty"` ChatID string `json:"chat_id,omitempty"` UnionID string `json:"-"` // For reply RootID string `json:"root_id,omitempty"` ReplyInThread bool `json:"reply_in_thread,omitempty"` // Sign for notification bot Sign string `json:"sign"` // Timestamp for sign Timestamp int64 `json:"timestamp"` // UUID for idempotency UUID string `json:"uuid"` }
OutcomingMessage struct of an outcoming message
type PinMessageResponse ¶
type PinMessageResponse struct { BaseResponse Data struct { Pin struct { MessageID string `json:"message_id"` ChatID string `json:"chat_id"` OperatorID string `json:"operator_id"` OperatorIDType string `json:"operator_id_type"` CreateTime string `json:"create_time"` } `json:"pin"` } `json:"data"` }
PinMessageResponse .
type PostElem ¶
type PostElem struct { Tag string `json:"tag"` // For Text UnEscape *bool `json:"un_escape,omitempty"` Text *string `json:"text,omitempty"` Lines *int `json:"lines,omitempty"` // For Link Href *string `json:"href,omitempty"` // For At UserID *string `json:"user_id,omitempty"` // For Image ImageKey *string `json:"image_key,omitempty"` ImageWidth *int `json:"width,omitempty"` ImageHeight *int `json:"height,omitempty"` }
PostElem .
type PostEphemeralMessageResponse ¶
type PostEphemeralMessageResponse struct { BaseResponse Data struct { MessageID string `json:"message_id"` } `json:"data"` }
PostEphemeralMessageResponse .
type PostMessageResponse ¶
type PostMessageResponse struct { BaseResponse Data IMMessage `json:"data"` }
PostMessageResponse .
type PostNotificationResp ¶
type PostNotificationResp struct {
Ok bool `json:"ok,omitempty"`
}
PostNotificationResp response of PostNotification
type PostNotificationV2Resp ¶
type PostNotificationV2Resp struct { BaseResponse StatusCode int `json:"StatusCode"` StatusMessage string `json:"StatusMessage"` }
PostNotificationV2Resp response of PostNotificationV2
type ReactionResponse ¶
type ReactionResponse struct { BaseResponse Data struct { ReactionID string `json:"reaction_id"` Operator struct { OperatorID string `json:"operator_id"` OperatorType string `json:"operator_type"` ActionTime string `json:"action_time"` } `json:"operator"` ReactionType struct { EmojiType EmojiType `json:"emoji_type"` } `json:"reaction_type"` } `json:"data"` }
ReactionResponse .
type RemoveBotFromGroupResponse ¶
type RemoveBotFromGroupResponse = BaseResponse
RemoveBotFromGroupResponse .
type RemoveChatMemberRequest ¶
type RemoveChatMemberRequest struct {
IDList []string `json:"id_list"`
}
RemoveChatMemberRequest .
type RemoveChatMemberResponse ¶
type RemoveChatMemberResponse struct { BaseResponse Data struct { InvalidIDList []string `json:"invalid_id_list"` } `json:"data"` }
RemoveChatMemberResponse .
type SetTopNoticeRequest ¶
type SetTopNoticeRequest struct {
ChatTopNotice []ChatTopNoticeAction `json:"chat_top_notice"`
}
SetTopNoticeRequest .
type StickerContent ¶
type StickerContent struct {
FileKey string `json:"file_key"`
}
StickerContent .
type TenantAuthTokenInternalResponse ¶
type TenantAuthTokenInternalResponse struct { BaseResponse TenantAppAccessToken string `json:"tenant_access_token"` Expire int `json:"expire"` }
TenantAuthTokenInternalResponse .
type UpdateChatRequest ¶
type UpdateChatRequest struct { Name string `json:"name,omitempty"` Avatar string `json:"avatar,omitempty"` Description string `json:"description,omitempty"` I18NNames I18NNames `json:"i18n_names,omitempty"` AddMemberPermission string `json:"add_member_permission,omitempty"` AtAllPermission string `json:"at_all_permission,omitempty"` EditPermission string `json:"edit_permission,omitempty"` OwnerID string `json:"owner_id,omitempty"` JoinMessageVisibility string `json:"join_message_visibility,omitempty"` LeaveMessageVisibility string `json:"leave_message_visibility,omitempty"` MembershipApproval string `json:"membership_approval,omitempty"` }
UpdateChatRequest .
type UpdateGroupInfoReq ¶
type UpdateGroupInfoReq struct { OpenChatID string `json:"open_chat_id"` OwnerID string `json:"owner_id,omitempty"` OwnerEmployeeID string `json:"owner_employee_id,omitempty"` Name string `json:"name,omitempty"` I18nNames map[string]string `json:"i18n_names,omitempty"` }
UpdateGroupInfoReq .
type UpdateGroupInfoResponse ¶
type UpdateGroupInfoResponse struct { BaseResponse OpenChatID string `json:"open_chat_id"` }
UpdateGroupInfoResponse .
type UploadFileRequest ¶
type UploadFileRequest struct { FileType string `json:"-"` FileName string `json:"-"` Duration int `json:"-"` Path string `json:"-"` Reader io.Reader `json:"-"` }
UploadFileRequest .
type UploadFileResponse ¶
type UploadFileResponse struct { BaseResponse Data struct { FileKey string `json:"file_key"` } `json:"data"` }
UploadFileResponse .
type UploadImageResponse ¶
type UploadImageResponse struct { BaseResponse Data struct { ImageKey string `json:"image_key"` } `json:"data"` }
UploadImageResponse .
type UserAvatar ¶
type UserAvatar struct { Avatar72 string `json:"avatar_72,omitempty"` Avatar240 string `json:"avatar_240,omitempty"` Avatar640 string `json:"avatar_640,omitempty"` AvatarOrigin string `json:"avatar_origin,omitempty"` }
UserAvatar .
type UserInfo ¶
type UserInfo struct { OpenID string `json:"open_id,omitempty"` Email string `json:"email,omitempty"` UserID string `json:"user_id,omitempty"` ChatID string `json:"chat_id,omitempty"` UnionID string `json:"union_id,omitempty"` Name string `json:"name,omitempty"` EnglishName string `json:"en_name,omitempty"` NickName string `json:"nickname,omitempty"` Mobile string `json:"mobile,omitempty"` MobileVisible bool `json:"mobile_visible,omitempty"` Gender int `json:"gender,omitempty"` Avatar UserAvatar `json:"avatar,omitempty"` Status UserStatus `json:"status,omitempty"` City string `json:"city,omitempty"` Country string `json:"country,omitempty"` WorkStation string `json:"work_station,omitempty"` JoinTime int `json:"join_time,omitempty"` EmployeeNo string `json:"employee_no,omitempty"` EmployeeType int `json:"employee_type,omitempty"` EnterpriseEmail string `json:"enterprise_email,omitempty"` Geo string `json:"geo,omitempty"` JobTitle string `json:"job_title,omitempty"` JobLevelID string `json:"job_level_id,omitempty"` JobFamilyID string `json:"job_family_id,omitempty"` DepartmentIDs []string `json:"department_ids,omitempty"` LeaderUserID string `json:"leader_user_id,omitempty"` IsTenantManager bool `json:"is_tenant_manager,omitempty"` }
UserInfo .
Source Files ¶
- api.go
- api_auth.go
- api_bot.go
- api_chat.go
- api_contact.go
- api_group.go
- api_message.go
- api_notification.go
- api_upload.go
- crypto.go
- emoji.go
- error.go
- event.go
- event_bot_added.go
- event_bot_deleted.go
- event_chat_disbanded.go
- event_message_reaction_created.go
- event_message_reaction_deleted.go
- event_message_read.go
- event_message_recalled.go
- event_message_received.go
- event_user_added.go
- event_user_deleted.go
- event_v1.go
- event_v2.go
- http.go
- http_wrapper.go
- lark.go
- locale.go
- logger.go
- message.go
- message_v1.go
- message_v2.go
- msg_buf.go
- msg_card_builder.go
- msg_post_builder.go
- msg_text_builder.go
- user.go
- util.go