Documentation
¶
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 PostEvent(client *http.Client, hookURL string, message EventMessage) (*http.Response, error)
- type AddBotToGroupResponse
- type AddGroupMemberResponse
- type AuthTokenInternalResponse
- type BaseResponse
- type Bot
- func (bot Bot) AccessToken() string
- func (bot *Bot) AddBotToGroup(openChatID string) (*AddBotToGroupResponse, error)
- func (bot *Bot) AddGroupMember(openChatID string, openID []string) (*AddGroupMemberResponse, error)
- func (bot *Bot) AddGroupMemberByUserID(openChatID string, userID []string) (*AddGroupMemberResponse, error)
- func (bot Bot) AppID() string
- func (bot Bot) BotType() int
- func (bot *Bot) CreateGroup(name, description string, openID []string) (*CreateGroupResponse, error)
- func (bot *Bot) DeleteEphemeralMessage(messageID string) (*DeleteEphemeralMessageResponse, error)
- func (bot *Bot) DeleteGroupMember(openChatID string, openID []string) (*DeleteGroupMemberResponse, 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) GetAccessTokenInternal(updateToken bool) (*AuthTokenInternalResponse, error)
- func (bot *Bot) GetBotInfo() (*GetBotInfoResponse, error)
- func (bot *Bot) GetGroupInfo(openChatID string) (*GroupInfoResponse, error)
- func (bot *Bot) GetGroupList(pageNum, pageSize int) (*GroupListResponse, error)
- func (bot *Bot) GetTenantAccessTokenInternal(updateToken bool) (*TenantAuthTokenInternalResponse, error)
- func (bot Bot) Logger() LogWrapper
- func (bot *Bot) MessageReadReceipt(messageID string) (*MessageReceiptResponse, 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(openChatID 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) RecallMessage(messageID string) (*RecallMessageResponse, error)
- func (bot *Bot) RemoveBotFromGroup(openChatID string) (*RemoveBotFromGroupResponse, 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) StartHeartbeat()
- func (bot *Bot) StopHeartbeat()
- func (bot Bot) TenantAccessToken() string
- func (bot *Bot) UnsetCustomClient()
- func (bot *Bot) UpdateGroupInfo(params *UpdateGroupInfoReq) (*UpdateGroupInfoResponse, 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
- type CardBlock
- type CardBuilder
- type CardContent
- type CreateGroupResponse
- type DeleteEphemeralMessageResponse
- type DeleteGroupMemberResponse
- type DisbandGroupResponse
- type EncryptedReq
- type EventBody
- type EventChallengeReq
- type EventMessage
- type GetBotInfoResponse
- type GroupInfoResponse
- type GroupListResponse
- type HTTPWrapper
- type LogLevel
- type LogWrapper
- type MessageContent
- type MessageReceiptResponse
- type MessageType
- type 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) 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) Image(imageKey string) *MsgBuffer
- func (m *MsgBuffer) Post(postContent *PostContent) *MsgBuffer
- func (m *MsgBuffer) ShareChat(chatID string) *MsgBuffer
- func (m *MsgBuffer) Text(text string) *MsgBuffer
- func (m *MsgBuffer) UpdateMulti(flag bool) *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 PostBody
- type PostBuf
- type PostContent
- type PostElem
- type PostEphemeralMessageResponse
- type PostMessageResponse
- type PostNotificationResp
- type PostNotificationV2Resp
- type RecallMessageResponse
- type RemoveBotFromGroupResponse
- type TenantAuthTokenInternalResponse
- type UpdateGroupInfoReq
- type UpdateGroupInfoResponse
- type UploadImageResponse
Constants ¶
const ( // ChatBot should call 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" LocaleEnUS = "en_us" LocaleJaJP = "ja_jp" )
Supported Lark locales
const ( LogLevelTrace = iota + 1 LogLevelDebug LogLevelInfo LogLevelWarn LogLevelError )
LogLevels
const (
// EventGetMessage .
EventGetMessage = 1
)
See https://open.feishu.cn/document/uYjL24iN/uUTNz4SN1MjL1UzM
Variables ¶
var ( ErrBotTypeError = errors.New("Bot type error") ErrParamUserID = errors.New("Param error: UserID") ErrMessageTypeNotSuppored = errors.New("Message type not supported") ErrEncryptionNotEnabled = errors.New("Encryption is not enabled") ErrCustomHTTPClientNotSet = errors.New("Custom HTTP client not set") )
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 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 ¶ added in v1.6.0
BaseResponse of an API
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) 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) CreateGroup ¶
func (bot *Bot) CreateGroup(name, description string, openID []string) (*CreateGroupResponse, error)
CreateGroup creates a group
func (*Bot) DeleteEphemeralMessage ¶ added in v1.6.0
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) DisbandGroup ¶
func (bot *Bot) DisbandGroup(openChatID string) (*DisbandGroupResponse, error)
DisbandGroup .
func (Bot) DoAPIRequest ¶ added in v1.2.0
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) 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) 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) GetTenantAccessTokenInternal ¶
func (bot *Bot) GetTenantAccessTokenInternal(updateToken bool) (*TenantAuthTokenInternalResponse, error)
GetTenantAccessTokenInternal gets AppAccessToken for internal use
func (Bot) Logger ¶ added in v1.1.0
func (bot Bot) Logger() LogWrapper
Logger returns current logger
func (*Bot) MessageReadReceipt ¶
func (bot *Bot) MessageReadReceipt(messageID string) (*MessageReceiptResponse, error)
MessageReadReceipt queries message read receipt
func (Bot) PostAPIRequest ¶
func (bot Bot) PostAPIRequest(prefix, urlPath string, auth bool, params interface{}, output interface{}) error
PostAPIRequest call Lark API
func (*Bot) PostEphemeralMessage ¶ added in v1.6.0
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 message
func (*Bot) PostNotification ¶
func (bot *Bot) PostNotification(title, text string) (*PostNotificationResp, error)
PostNotification send message to a webhook
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(openChatID string, userID *OptionalUserID) (*PostMessageResponse, error)
PostShareChat is a simple way to share chat
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) 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) SetCustomClient ¶ added in v1.2.0
func (bot *Bot) SetCustomClient(c HTTPWrapper)
SetCustomClient .
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) StartHeartbeat ¶
func (bot *Bot) StartHeartbeat()
StartHeartbeat renew auth token periodically
func (Bot) TenantAccessToken ¶
TenantAccessToken returns bot.tenantAccessToken for external use
func (*Bot) UnsetCustomClient ¶ added in v1.2.0
func (bot *Bot) UnsetCustomClient()
UnsetCustomClient .
func (*Bot) UpdateGroupInfo ¶
func (bot *Bot) UpdateGroupInfo(params *UpdateGroupInfoReq) (*UpdateGroupInfoResponse, error)
UpdateGroupInfo update lark group info
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
type CardBuilder ¶ added in v1.5.0
type CardBuilder interface { Card(elements ...card.Element) *CardBlock Action(actions ...card.Element) *card.ActionBlock Button(text *card.TextBlock) *card.ButtonBlock Confirm(title, text string) *card.ConfirmBlock DatePicker() *card.DatePickerBlock TimePicker() *card.TimePickerBlock DatetimePicker() *card.DatetimePickerBlock Div(fields ...*card.FieldBlock) *card.DivBlock Field(text *card.TextBlock) *card.FieldBlock Hr() *card.HrBlock Img(key string) *card.ImgBlock Note() *card.NoteBlock Option(value string) *card.OptionBlock Overflow(options ...*card.OptionBlock) *card.OverflowBlock SelectMenu(options ...*card.OptionBlock) *card.SelectMenuBlock Text(s string) *card.TextBlock Markdown(s string) *card.MarkdownBlock URL() *card.URLBlock }
CardBuilder 卡片构造方法
type CreateGroupResponse ¶
type CreateGroupResponse struct { BaseResponse OpenChatID string `json:"open_chat_id"` InvalidOpenID []string `json:"invalid_open_ids"` }
CreateGroupResponse .
type DeleteEphemeralMessageResponse ¶ added in v1.6.0
type DeleteEphemeralMessageResponse = BaseResponse
DeleteEphemeralMessageResponse .
type DeleteGroupMemberResponse ¶
type DeleteGroupMemberResponse AddGroupMemberResponse
DeleteGroupMemberResponse .
type EncryptedReq ¶
type EncryptedReq struct {
Encrypt string `json:"encrypt,omitempty"`
}
EncryptedReq request of encrypted challagen
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 EventChallengeReq ¶
type EventChallengeReq struct { Token string `json:"token,omitempty"` Challenge string `json:"challenge,omitempty"` Type string `json:"type,omitempty"` }
EventChallengeReq request of add event hook
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 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 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 ¶ added in v1.2.0
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 LogWrapper ¶ added in v1.3.0
type LogWrapper interface { // for log print Log(context.Context, LogLevel, string) // for test redirection SetOutput(io.Writer) }
LogWrapper interface
type MessageContent ¶
type MessageContent struct { Text *string `json:"text,omitempty"` ImageKey *string `json:"image_key,omitempty"` Post *PostContent `json:"post,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 MessageType ¶
type MessageType string
MessageType message type
const ( // MsgText simple text message MsgText MessageType = "text" // MsgPost rich text message MsgPost MessageType = "post" // MsgImage simple image message MsgImage MessageType = "image" MsgShareCard MessageType = "share_chat" // MsgInteractive interactive widget MsgInteractive MessageType = "interactive" )
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 ¶
func NewMsgBuffer(newMsgType MessageType) *MsgBuffer
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) 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) UpdateMulti ¶
UpdateMulti set multi, shared card default false, not share
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 ¶ added in v1.1.0
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 ¶ added in v1.1.0
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
type OutcomingMessage ¶
type OutcomingMessage struct { MsgType MessageType `json:"msg_type"` // ID for user OpenID *string `json:"open_id,omitempty"` Email *string `json:"email,omitempty"` UserID *string `json:"user_id,omitempty"` ChatID *string `json:"chat_id,omitempty"` // For reply RootID *string `json:"root_id,omitempty"` // Content Content MessageContent `json:"content"` Card CardContent `json:"card"` // UpdateMulti card UpdateMulti bool `json:"update_multi"` }
OutcomingMessage struct of an outcoming message
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 ¶ added in v1.6.0
type PostEphemeralMessageResponse = PostMessageResponse
PostEphemeralMessageResponse .
type PostMessageResponse ¶
type PostMessageResponse struct { BaseResponse Data struct { MessageID string `json:"message_id"` } `json:"data"` }
PostMessageResponse .
type PostNotificationResp ¶
type PostNotificationResp struct {
Ok bool `json:"ok,omitempty"`
}
PostNotificationResp response of PostNotification
type PostNotificationV2Resp ¶
type PostNotificationV2Resp struct { StatusCode int `json:"StatusCode"` StatusMessage string `json:"StatusMessage"` }
PostNotificationV2Resp response of PostNotificationV2
type RemoveBotFromGroupResponse ¶
type RemoveBotFromGroupResponse = BaseResponse
RemoveBotFromGroupResponse .
type TenantAuthTokenInternalResponse ¶
type TenantAuthTokenInternalResponse struct { BaseResponse TenantAppAccessToken string `json:"tenant_access_token"` Expire int `json:"expire"` }
TenantAuthTokenInternalResponse .
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 UploadImageResponse ¶
type UploadImageResponse struct { BaseResponse Data struct { ImageKey string `json:"image_key"` } `json:"data"` }
UploadImageResponse .