tlbot

package module
v0.0.0-...-2fc3cba Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2019 License: MIT Imports: 14 Imported by: 0

README

tlbot

golang telegram bot API implementation

Build Status

Documentation

Index

Constants

View Source
const (
	ContentTypeApplicationJSON = "application/json"
	ContentTypeImageJPEG       = "image/jpeg"
	ContentTypeAudioMPEG       = "audio/mpeg"
)

Variables

This section is empty.

Functions

func IsStringOrNil

func IsStringOrNil(file InputFile) bool

IsStringOrNil return true if given InputFile type is string, alias on string or nil

func WriteData

func WriteData(w *multipart.Writer, fields Fields) error

WriteData

func WriteInputFile

func WriteInputFile(w *multipart.Writer, name string, file InputFile, required bool) error

WriteInputFile

Types

type API

type API struct {
	// contains filtered or unexported fields
}

API represent telegram bot

func CreateAPI

func CreateAPI(ctx context.Context, rt http.RoundTripper, token string) (*API, error)

CreateAPI

func (*API) Call

func (api *API) Call(ctx context.Context, obj SendJSON, recv ...interface{}) error

Call represent common method for calling telegram bot API

func (*API) GetUpdates

func (api *API) GetUpdates(ctx context.Context, timeout Second, limit int32, allowed ...string) ([]*Update, error)

GetUpdates represent getting updates via long poling with handle offset

func (*API) HandleUpdates

func (api *API) HandleUpdates(ctx context.Context, updates []*Update, process ProcessingUpdate)

HandleUpdates

func (*API) WaitHandlers

func (api *API) WaitHandlers()

WaitHandlers represent method for await handlers

type AddStickerToSet

type AddStickerToSet struct {
	SendJSON     `json:"-"`
	UserID       ChatID        `json:"user_id"`
	Name         string        `json:"name"`
	PNGSticker   InputFile     `json:"png_sticker"`
	Emoji        string        `json:"emoji"`
	MaskPosition *MaskPosition `json:"mask_position,omitempty"`
}

AddStickerToSet use this method to add a new sticker to a set created by the bot. Returns True on success. ----------------------------------------------------------------------------------------------------------------------

Parameter		Type			Required	Description

----------------------------------------------------------------------------------------------------------------------

user_id			Integer			Yes			User identifier of sticker set owner

----------------------------------------------------------------------------------------------------------------------

name			String			Yes			Sticker set name

----------------------------------------------------------------------------------------------------------------------

png_sticker		InputFile 		Yes			Png image with the sticker, must be up to 512 kilobytes in size,
				or String					dimensions must not exceed 512px, and either width or height must be
											exactly 512px. Pass a file_id as a String to send a file that already
											exists on the Telegram servers, pass an HTTP URL as a String for
											Telegram to get a file from the Internet, or upload a new one using
											multipart/form-data. More info on Sending Files »

----------------------------------------------------------------------------------------------------------------------

emojis			String			Yes			One or more emoji corresponding to the sticker

----------------------------------------------------------------------------------------------------------------------

mask_position	MaskPosition	Optional	A JSON-serialized object for position where
											the mask should be placed on faces

----------------------------------------------------------------------------------------------------------------------

func (*AddStickerToSet) JSONAble

func (s *AddStickerToSet) JSONAble() bool

JSONAble

func (*AddStickerToSet) WriteData

func (s *AddStickerToSet) WriteData(w *multipart.Writer) error

WriteData

type Amount

type Amount int64

Amount represent amount value

type Animation

type Animation struct {
	FileID   FileID     `json:"file_id,omitempty"`
	Width    int32      `json:"width,omitempty"`
	Height   int32      `json:"height,omitempty"`
	Duration Second     `json:"duration,omitempty"`
	Thumb    *PhotoSize `json:"thumb,omitempty"`
	FileName string     `json:"file_name,omitempty"`
	MimeType string     `json:"mime_type,omitempty"`
	FileSize int64      `json:"file_size,omitempty"`
}

Animation represents an animation file (GIF or H.264/MPEG-4 AVC video without sound). ----------------------------------------------------------------------------------------------------------------------

Field		Type		Description

----------------------------------------------------------------------------------------------------------------------

file_id		String		Unique file identifier

----------------------------------------------------------------------------------------------------------------------

width		Integer		Video width as defined by sender

----------------------------------------------------------------------------------------------------------------------

height		Integer		Video height as defined by sender

----------------------------------------------------------------------------------------------------------------------

duration	Integer		Duration of the video in seconds as defined by sender

----------------------------------------------------------------------------------------------------------------------

thumb		PhotoSize	Optional. Animation thumbnail as defined by sender

----------------------------------------------------------------------------------------------------------------------

file_name	String		Optional. Original animation filename as defined by sender

----------------------------------------------------------------------------------------------------------------------

mime_type	String		Optional. MIME type of the file as defined by sender

----------------------------------------------------------------------------------------------------------------------

file_size	Integer		Optional. File size

----------------------------------------------------------------------------------------------------------------------

type AnswerCallbackQuery

type AnswerCallbackQuery struct {
	SendJSON        `json:"-"`
	CallbackQueryID string `json:"callback_query_id"`
	Text            string `json:"text,omitempty"`
	ShowAlert       bool   `json:"show_alert,omitempty"`
	URL             string `json:"baseURL,omitempty"`
	CacheTime       Second `json:"cache_time,omitempty"`
}

AnswerCallbackQuery use this method to send answers to callback queries sent from inline keyboards. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert. On success, True is returned. Alternatively, the user can be redirected to the specified Game URL. For this option to work, you must first create a game for your bot via @Botfather and accept the terms. Otherwise, you may use links like t.me/your_bot?start=XXXX that open your bot with a parameter. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- callback_query_id String Yes Unique identifier for the query to be answered ---------------------------------------------------------------------------------------------------------------------- text String Optional Text of the notification.

If not specified, nothing will be shown to the user, 0-200 characters

---------------------------------------------------------------------------------------------------------------------- show_alert Boolean Optional If true, an alert will be shown by the client instead of a notification

at the top of the chat screen. Defaults to false.

---------------------------------------------------------------------------------------------------------------------- baseURL String Optional URL that will be opened by the user's client.

If you have created a Game and accepted the conditions via @Botfather,
specify the URL that opens your game – note that this will only work if
the query comes from a callback_game button.
Otherwise, you may use links like t.me/your_bot?start=XXXX that open your
bot with a parameter.

---------------------------------------------------------------------------------------------------------------------- cache_time Integer Optional The maximum amount of time in seconds that the result of the callback query

may be cached client-side. Telegram apps will support caching
starting in version 3.14. Defaults to 0.

----------------------------------------------------------------------------------------------------------------------

type AnswerInlineQuery

type AnswerInlineQuery struct {
	SendJSON          `json:"-"`
	InlineQueryID     InlineQueryID       `json:"inline_query_id"`
	Results           []InlineQueryResult `json:"results"`
	CacheTime         Second              `json:"cache_time,omitempty"`
	IsPersonal        bool                `json:"is_personal,omitempty"`
	NextOffset        string              `json:"next_offset,omitempty"`
	SwitchPMText      string              `json:"switch_pm_text,omitempty"`
	SwitchPMParameter string              `json:"switch_pm_parameter,omitempty"`
}

AnswerInlineQuery use this method to send answers to an inline query. On success, True is returned. No more than 50 results per query are allowed. Example: An inline bot that sends YouTube videos can ask the user to connect the bot to their YouTube account to adapt search results accordingly. To process this, it displays a ‘Connect your YouTube account’ button above the results, or even before showing any. The user presses the button, switches to a private chat with the bot and, in doing so, passes a start parameter that instructs the bot to return an oauth link. Once done, the bot can offer a switch_inline button so that the user can easily return to the chat where they wanted to use the bot's inline capabilities. ----------------------------------------------------------------------------------------------------------------------

Parameter			Type				Required	Description

----------------------------------------------------------------------------------------------------------------------

inline_query_id		String				Yes			Unique identifier for the answered query

----------------------------------------------------------------------------------------------------------------------

results				[]InlineQueryResult	Yes			A JSON-serialized array of results for the inline query

----------------------------------------------------------------------------------------------------------------------

cache_time			Integer				Optional	The maximum amount of time in seconds that the result of
													the inline query may be cached on the server. Defaults to 300.

----------------------------------------------------------------------------------------------------------------------

is_personal			Boolean				Optional	Pass True, if results may be cached on the server side only for
													the user that sent the query. By default, results may be
													returned to any user who sends the same query

----------------------------------------------------------------------------------------------------------------------

next_offset			String				Optional	Pass the offset that a client should send in the next query
													with the same text to receive more results.
													Pass an empty string if there are no more results or if you
													don‘t support pagination. Offset length can’t exceed 64 bytes.

----------------------------------------------------------------------------------------------------------------------

switch_pm_text		String				Optional	If passed, clients will display a button with specified text
													that switches the user to a private chat with the bot and sends
													the bot a start message with the parameter switch_pm_parameter

----------------------------------------------------------------------------------------------------------------------

switch_pm_parameter	String				Optional	Deep-linking parameter for the /start message sent to the bot
													when user presses the switch button. 1-64 characters,
													only A-Z, a-z, 0-9, _ and - are allowed.

----------------------------------------------------------------------------------------------------------------------

type AnswerPreCheckoutQuery

type AnswerPreCheckoutQuery struct {
	SendJSON           `json:"-"`
	PreCheckoutQueryID string `json:"pre_checkout_query_id"`
	OK                 bool   `json:"ok"`
	ErrorMessage       string `json:"error_message,omitempty"`
}

AnswerPreCheckoutQuery once the user has confirmed their payment and shipping details, the API API sends the final confirmation in the form of an Update with the field pre_checkout_query. Use this method to respond to such pre-checkout queries. On success, True is returned. Note: The API API must receive an answer within 10 seconds after the pre-checkout query was sent. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- pre_checkout_query_id String Yes Unique identifier for the query to be answered ---------------------------------------------------------------------------------------------------------------------- ok Boolean Yes Specify True if everything is alright (goods are available, etc.)

and the bot is ready to proceed with the order.
Use False if there are any problems.

---------------------------------------------------------------------------------------------------------------------- error_message String Optional Required if ok is False. Error message in human readable form

that explains the reason for failure to proceed with the checkout
(e.g. "Sorry, somebody just bought the last of our amazing black
T-shirts while you were busy filling out your payment details.
Please choose a different color or garment!").
Telegram will display this message to the user.

----------------------------------------------------------------------------------------------------------------------

type AnswerShippingQuery

type AnswerShippingQuery struct {
	SendJSON        `json:"-"`
	ShippingQueryID string            `json:"shipping_query_id"`
	OK              bool              `json:"ok"`
	ShippingOptions []*ShippingOption `json:"shipping_options,omitempty"`
	ErrorMessage    string            `json:"error_message,omitempty"`
}

AnswerShippingQuery if you sent an invoice requesting a shipping address and the parameter is_flexible was specified, the API API will send an Update with a shipping_query field to the bot. Use this method to reply to shipping queries. On success, True is returned. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- shipping_query_id String Yes Unique identifier for the query to be answered ---------------------------------------------------------------------------------------------------------------------- ok Boolean Yes Specify True if delivery to the specified address is possible

and False if there are any problems (for example, if delivery
to the specified address is not possible)

---------------------------------------------------------------------------------------------------------------------- shipping_options []ShippingOption Optional Required if ok is True. A JSON-serialized array

of available shipping options.

---------------------------------------------------------------------------------------------------------------------- error_message String Optional Required if ok is False. Error message in human readable form

that explains why it is impossible to complete the order
(e.g. "Sorry, delivery to your desired address is unavailable').
Telegram will display this message to the user.

----------------------------------------------------------------------------------------------------------------------

type Audio

type Audio struct {
	FileID    FileID     `json:"file_id,omitempty"`
	Duration  Second     `json:"duration,omitempty"`
	Performer string     `json:"performer,omitempty"`
	Title     string     `json:"title,omitempty"`
	MimeType  string     `json:"mime_type,omitempty"`
	FileSize  int64      `json:"file_size,omitempty"`
	Thumb     *PhotoSize `json:"thumb,omitempty"`
}

Audio represents an audio file to be treated as music by the Telegram clients. ----------------------------------------------------------------------------------------------------------------------

Field		Type		Description

----------------------------------------------------------------------------------------------------------------------

file_id		String		Unique identifier for this file

----------------------------------------------------------------------------------------------------------------------

duration	Integer		Duration of the audio in seconds as defined by sender

----------------------------------------------------------------------------------------------------------------------

performer	String		Optional. Performer of the audio as defined by sender or by audio tags

----------------------------------------------------------------------------------------------------------------------

title		String		Optional. Title of the audio as defined by sender or by audio tags

----------------------------------------------------------------------------------------------------------------------

mime_type	String		Optional. MIME type of the file as defined by sender

----------------------------------------------------------------------------------------------------------------------

file_size	Integer		Optional. File size

----------------------------------------------------------------------------------------------------------------------

thumb		PhotoSize	Optional. Thumbnail of the album cover to which the music file belongs

----------------------------------------------------------------------------------------------------------------------

type CallbackGame

type CallbackGame struct {
}

CallbackGame a placeholder, currently holds no information. Use BotFather to set up your game.

type CallbackQuery

type CallbackQuery struct {
	ID              InlineQueryID   `json:"id,omitempty"`
	From            *User           `json:"from,omitempty"`
	Message         *Message        `json:"message,omitempty"`
	InlineMessageID InlineMessageID `json:"inline_message_id,omitempty"`
	ChatInstance    string          `json:"chat_instance,omitempty"`
	Data            string          `json:"data,omitempty"`
	GameShortName   string          `json:"game_short_name,omitempty"`
}

CallbackQuery represents an incoming callback query from a callback button in an inline keyboard. If the button that originated the query was attached to a message sent by the bot, the field message will be present. If the button was attached to a message sent via the bot (in inline mode), the field inline_message_id will be present. Exactly one of the fields data or game_short_name will be present. ----------------------------------------------------------------------------------------------------------------------

Field				Type		Description

----------------------------------------------------------------------------------------------------------------------

id					String		Unique identifier for this query

----------------------------------------------------------------------------------------------------------------------

from				User		Sender

----------------------------------------------------------------------------------------------------------------------

message				Message		Optional. Message with the callback button that originated the query.
								Note that message content and message date will not be available
								if the message is too old

----------------------------------------------------------------------------------------------------------------------

inline_message_id	String		Optional. Identifier of the message sent via the bot in inline mode,
								that originated the query.

----------------------------------------------------------------------------------------------------------------------

chat_instance		String		Global identifier, uniquely corresponding to the chat to which the message with
								the callback button was sent. Useful for high scores in games.

----------------------------------------------------------------------------------------------------------------------

data				String		Optional. Data associated with the callback button.
								Be aware that a bad client can send arbitrary data in this field.

----------------------------------------------------------------------------------------------------------------------

game_short_name		String		Optional. Short name of a Game to be returned,
								serves as the unique identifier for the game

----------------------------------------------------------------------------------------------------------------------

type Chat

type Chat struct {
	ID               ChatID     `json:"id,omitempty"`
	Type             string     `json:"type,omitempty"`
	Title            string     `json:"title,omitempty"`
	Username         string     `json:"username,omitempty"`
	FirstName        string     `json:"first_name,omitempty"`
	LastName         string     `json:"last_name,omitempty"`
	AllMemAreAdmins  bool       `json:"all_members_are_administrators,omitempty"`
	Photo            *ChatPhoto `json:"photo,omitempty"`
	Description      string     `json:"description,omitempty"`
	InviteLink       string     `json:"invite_link,omitempty"`
	PinnedMessage    *Message   `json:"pinned_message,omitempty"`
	StickerSetName   string     `json:"sticker_set_name,omitempty"`
	CanSetStickerSet bool       `json:"can_set_sticker_set,omitempty"`
}

Chat represent telegram chat ----------------------------------------------------------------------------------------------------------------------

Field							Type		Description

----------------------------------------------------------------------------------------------------------------------

id								Integer		Unique identifier for this chat. This number may be greater than
											32 bits and some programming languages may have difficulty/silent
											defects in interpreting it. But it is smaller than 52 bits,
											so a signed 64 bit integer or double-precision float type are safe
											for storing this identifier.

----------------------------------------------------------------------------------------------------------------------

type							String		Type of chat, can be either [“private”,“group”,“supergroup”,“channel”]

----------------------------------------------------------------------------------------------------------------------

title							String		Optional. Title, for supergroups, channels and group chats

----------------------------------------------------------------------------------------------------------------------

username						String		Optional. Username, for private chats,
											supergroups and channels if available

----------------------------------------------------------------------------------------------------------------------

first_name						String		Optional. First name of the other party in a private chat

----------------------------------------------------------------------------------------------------------------------

last_name						String		Optional. Last name of the other party in a private chat

----------------------------------------------------------------------------------------------------------------------

all_members_are_administrators	Boolean		Optional. True if a group has ‘All Members Are Admins’ enabled.

----------------------------------------------------------------------------------------------------------------------

photo							ChatPhoto	Optional. Chat photo. Returned only in getChat.

----------------------------------------------------------------------------------------------------------------------

description						String		Optional. Description, for supergroups and channel chats.
											Returned only in getChat.

----------------------------------------------------------------------------------------------------------------------

invite_link						String		Optional. Chat invite link, for supergroups and channel chats.
											Each administrator in a chat generates their own invite links,
											so the bot must first generate the link using exportChatInviteLink.
											Returned only in getChat.

----------------------------------------------------------------------------------------------------------------------

pinned_message					Message		Optional. Pinned message, for supergroups and channel chats.
											Returned only in getChat.

----------------------------------------------------------------------------------------------------------------------

sticker_set_name				String		Optional. For supergroups, name of group sticker set.
											Returned only in getChat.

----------------------------------------------------------------------------------------------------------------------

can_set_sticker_set				Boolean		Optional. True, if the bot can change the group sticker set.
											Returned only in getChat.

----------------------------------------------------------------------------------------------------------------------

type ChatID

type ChatID int64

ChatID represent unique telegram chat/user identity

type ChatMember

type ChatMember struct {
	User                  *User    `json:"user,omitempty"`
	Status                string   `json:"status,omitempty"`
	UntilDate             UnixTime `json:"until_date,omitempty"`
	CanBeEdited           bool     `json:"can_be_edited,omitempty"`
	CanChangeInfo         bool     `json:"can_change_info,omitempty"`
	CanPostMessage        bool     `json:"can_post_message,omitempty"`
	CanEditMessage        bool     `json:"can_edit_message,omitempty"`
	CanDeleteMessage      bool     `json:"can_delete_message,omitempty"`
	CanInviteUsers        bool     `json:"can_invite_users,omitempty"`
	CanRestrictMembers    bool     `json:"can_restrict_members,omitempty"`
	CanPinMessage         bool     `json:"can_pin_message,omitempty"`
	CanPromoteMembers     bool     `json:"can_promote_members,omitempty"`
	CanSendMessage        bool     `json:"can_send_message,omitempty"`
	CanSendMediaMessage   bool     `json:"can_send_media_message,omitempty"`
	CanSendOtherMessage   bool     `json:"can_send_other_message,omitempty"`
	CanAddWebPagePreviews bool     `json:"can_add_web_page_previews,omitempty"`
}

ChatMember this object contains information about one member of a chat. ----------------------------------------------------------------------------------------------------------------------

Field						Type		Description

----------------------------------------------------------------------------------------------------------------------

user						User		Information about the user

----------------------------------------------------------------------------------------------------------------------

status						String		The member's status in the chat.
										Can be “creator”, “administrator”, “member”, “restricted”, “left”, “kicked”

----------------------------------------------------------------------------------------------------------------------

until_date					Integer		Optional. Restricted and kicked only.
										Date when restrictions will be lifted for this user, unix time

----------------------------------------------------------------------------------------------------------------------

can_be_edited				Boolean		Optional. Administrators only.
										True, if the bot is allowed to edit administrator privileges of that user

----------------------------------------------------------------------------------------------------------------------

can_change_info				Boolean		Optional. Administrators only.
										True, if the administrator can change the chat title,
										photo and other settings

----------------------------------------------------------------------------------------------------------------------

can_post_messages			Boolean		Optional. Administrators only.
										True, if the administrator can post in the channel, channels only

----------------------------------------------------------------------------------------------------------------------

can_edit_messages			Boolean		Optional. Administrators only.
										True, if the administrator can edit messages of other users
										and can pin messages, channels only

----------------------------------------------------------------------------------------------------------------------

can_delete_messages			Boolean		Optional. Administrators only.
										True, if the administrator can delete messages of other users

----------------------------------------------------------------------------------------------------------------------

can_invite_users			Boolean		Optional. Administrators only.
										True, if the administrator can invite new users to the chat

----------------------------------------------------------------------------------------------------------------------

can_restrict_members		Boolean		Optional. Administrators only.
										True, if the administrator can restrict, ban or unban chat members

----------------------------------------------------------------------------------------------------------------------

can_pin_messages			Boolean		Optional. Administrators only.
										True, if the administrator can pin messages, supergroups only

----------------------------------------------------------------------------------------------------------------------

can_promote_members			Boolean		Optional. Administrators only.
										True, if the administrator can add new administrators with a subset of his
										own privileges or demote administrators that he has promoted, directly or
										indirectly (promoted by administrators that were appointed by the user)

----------------------------------------------------------------------------------------------------------------------

can_send_messages			Boolean		Optional. Restricted only.
										True, if the user can send text messages, contacts, locations and venues

----------------------------------------------------------------------------------------------------------------------

can_send_media_messages		Boolean		Optional. Restricted only.
										True, if the user can send audios, documents, photos, videos,
										video notes and voice notes, implies can_send_messages

----------------------------------------------------------------------------------------------------------------------

can_send_other_messages		Boolean		Optional. Restricted only.
										True, if the user can send animations, games, stickers and use inline bots,
										implies can_send_media_messages

----------------------------------------------------------------------------------------------------------------------

can_add_web_page_previews	Boolean		Optional. Restricted only.
										True, if user may add web page previews to his messages,
										implies can_send_media_messages

----------------------------------------------------------------------------------------------------------------------

type ChatPhoto

type ChatPhoto struct {
	SmallFileID string `json:"small_file_id,omitempty"`
	BigFileID   string `json:"big_file_id,omitempty"`
}

ChatPhoto represent telegram chat photo ----------------------------------------------------------------------------------------------------------------------

Field			Type	Description

----------------------------------------------------------------------------------------------------------------------

small_file_id	String	Unique file identifier of small (160x160) chat photo.
						This file_id can be used only for photo download.

----------------------------------------------------------------------------------------------------------------------

big_file_id		String	Unique file identifier of big (640x640) chat photo.
						This file_id can be used only for photo download.

----------------------------------------------------------------------------------------------------------------------

type ChosenInlineResult

type ChosenInlineResult struct {
	ResultID        InlineQueryResultID `json:"result_id,omitempty"`
	From            *User               `json:"from,omitempty"`
	Location        *Location           `json:"location,omitempty"`
	InlineMessageID InlineMessageID     `json:"inline_message_id,omitempty"`
	Query           string              `json:"query,omitempty"`
}

ChosenInlineResult represents a result of an inline query that was chosen by the user and sent to their chat partner. ----------------------------------------------------------------------------------------------------------------------

Field				Type		Description

----------------------------------------------------------------------------------------------------------------------

result_id			String		The unique identifier for the result that was chosen

----------------------------------------------------------------------------------------------------------------------

from				User		The user that chose the result

----------------------------------------------------------------------------------------------------------------------

location			Location	Optional. Sender location, only for bots that require user location

----------------------------------------------------------------------------------------------------------------------

inline_message_id	String		Optional. Identifier of the sent inline message.
								Available only if there is an inline keyboard attached to the message.
								Will be also received in callback queries and can be used to edit the message.

----------------------------------------------------------------------------------------------------------------------

query				String		The query that was used to obtain the result

----------------------------------------------------------------------------------------------------------------------

type Config

type Config struct {
	Token                string
	PollingTimeout       int32
	PollingLimit         int32
	MaxUploadingFileSize int64
}

CFG

type Contact

type Contact struct {
	PhoneNumber string `json:"phone_number,omitempty"`
	FirstName   string `json:"first_name,omitempty"`
	LastName    string `json:"last_name,omitempty"`
	UserID      ChatID `json:"user_id,omitempty"`
	VCard       string `json:"vcard,omitempty"`
}

Contact represents a phone contact. ----------------------------------------------------------------------------------------------------------------------

Field			Type		Description

----------------------------------------------------------------------------------------------------------------------

phone_number	String		Contact's phone number

----------------------------------------------------------------------------------------------------------------------

first_name		String		Contact's first name

----------------------------------------------------------------------------------------------------------------------

last_name		String		Optional. Contact's last name

----------------------------------------------------------------------------------------------------------------------

user_id			Integer		Optional. Contact's user identifier in Telegram

----------------------------------------------------------------------------------------------------------------------

vcard			String		Optional. Additional data about the contact in the form of a vCard

----------------------------------------------------------------------------------------------------------------------

type CreateNewStickerSet

type CreateNewStickerSet struct {
	SendJSON         `json:"-"`
	UserID           ChatID        `json:"user_id"`
	Name             string        `json:"name"`
	Title            string        `json:"title"`
	PNGSticker       InputFile     `json:"png_sticker"`
	Emoji            string        `json:"emoji"`
	ContainsPosition bool          `json:"contains_position,omitempty"`
	MaskPosition     *MaskPosition `json:"mask_position,omitempty"`
}

CreateNewStickerSet use this method to create new sticker set owned by a user. The bot will be able to edit the created sticker set. Returns True on success. ----------------------------------------------------------------------------------------------------------------------

Parameter		Type			Required	Description

----------------------------------------------------------------------------------------------------------------------

user_id			Integer			Yes			User identifier of created sticker set owner

----------------------------------------------------------------------------------------------------------------------

name			String			Yes			Short name of sticker set, to be used in t.me/addstickers/
											URLs (e.g., animals). Can contain only english letters, digits
											and underscores. Must begin with a letter, can't contain consecutive
											underscores and must end in “_by_<bot username>”. <bot_username> is
											case insensitive. 1-64 characters.

----------------------------------------------------------------------------------------------------------------------

title			String			Yes			Sticker set title, 1-64 characters

----------------------------------------------------------------------------------------------------------------------

png_sticker		InputFile 		Yes			Png image with the sticker, must be up to 512 kilobytes in size,
				or String					dimensions must not exceed 512px, and either width or height must
											be exactly 512px. Pass a file_id as a String to send a file that already
											exists on the Telegram servers, pass an HTTP URL as a String for
											Telegram to get a file from the Internet, or upload a new one using
											multipart/form-data. More info on Sending Files »

----------------------------------------------------------------------------------------------------------------------

emojis			String			Yes			One or more emoji corresponding to the sticker

----------------------------------------------------------------------------------------------------------------------

contains_masks	Boolean			Optional	Pass True, if a set of mask stickers should be created

----------------------------------------------------------------------------------------------------------------------

mask_position	MaskPosition	Optional	A JSON-serialized object for position where
											the mask should be placed on faces

----------------------------------------------------------------------------------------------------------------------

func (*CreateNewStickerSet) JSONAble

func (s *CreateNewStickerSet) JSONAble() bool

JSONAble

func (*CreateNewStickerSet) WriteData

func (s *CreateNewStickerSet) WriteData(w *multipart.Writer) error

WriteData

type DeleteChatPhoto

type DeleteChatPhoto struct {
	SendJSON `json:"-"`
	ChatID   ChatID `json:"chat_id"`
}

DeleteChatPhoto use this method to delete a chat photo. Photos can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate admin rights. Returns True on success. Note: In regular groups (non-supergroups), this method will only work if the ‘All Members Are Admins’ setting is off in the target group. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of the target

channel (in the format @channelusername)

----------------------------------------------------------------------------------------------------------------------

type DeleteChatStickerSet

type DeleteChatStickerSet struct {
	SendJSON `json:"-"`
	ChatID   ChatID `json:"chat_id"`
}

DeleteChatStickerSet use this method to delete a group sticker set from a supergroup. The bot must be an administrator in the chat for this to work and must have the appropriate admin rights. Use the field can_set_sticker_set optionally returned in getChat requests to check if the bot can use this method. Returns True on success. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of

the target supergroup (in the format @supergroupusername)

----------------------------------------------------------------------------------------------------------------------

type DeleteMessage

type DeleteMessage struct {
	SendJSON  `json:"-"`
	ChatID    ChatID    `json:"chat_id"`
	MessageID MessageID `json:"message_id"`
}

DeleteMessage use this method to delete a message, including service messages, with the following limitations: - A message can only be deleted if it was sent less than 48 hours ago. - Bots can delete outgoing messages in private chats, groups, and supergroups. - Bots granted can_post_messages permissions can delete outgoing messages in channels. - If the bot is an administrator of a group, it can delete any message there. - If the bot has can_delete_messages permission in a supergroup or a channel, it can delete any message there. Returns True on success. ----------------------------------------------------------------------------------------------------------------------

Parameter	Type				Required	Description

----------------------------------------------------------------------------------------------------------------------

chat_id		Integer or String	Yes			Unique identifier for the target chat or username
											of the target channel (in the format @channelusername)

----------------------------------------------------------------------------------------------------------------------

message_id	Integer				Yes			Identifier of the message to delete

----------------------------------------------------------------------------------------------------------------------

type DeleteStickerFromSet

type DeleteStickerFromSet struct {
	SendJSON `json:"-"`
	Sticker  string `json:"sticker"`
}

DeleteStickerFromSet use this method to delete a sticker from a set created by the bot. Returns True on success. ----------------------------------------------------------------------------------------------------------------------

Parameter	Type	Required	Description

----------------------------------------------------------------------------------------------------------------------

sticker		String	Yes			File identifier of the sticker

----------------------------------------------------------------------------------------------------------------------

type DeleteWebhook

type DeleteWebhook struct {
	SendJSON `json:"-"`
}

DeleteWbHook use this method to remove webhook integration if you decide to switch back to getUpdates. Returns True on success. Requires no parameters.

type Document

type Document struct {
	FileID   FileID     `json:"file_id,omitempty"`
	Thumb    *PhotoSize `json:"thumb,omitempty"`
	FileName string     `json:"file_name,omitempty"`
	MimeType string     `json:"mime_type,omitempty"`
	FileSize int64      `json:"file_size,omitempty"`
}

Document represents a general file (as opposed to photos, voice messages and audio files). ----------------------------------------------------------------------------------------------------------------------

Field		Type		Description

----------------------------------------------------------------------------------------------------------------------

file_id		String		Unique file identifier

----------------------------------------------------------------------------------------------------------------------

thumb		PhotoSize	Optional. Document thumbnail as defined by sender

----------------------------------------------------------------------------------------------------------------------

file_name	String		Optional. Original filename as defined by sender

----------------------------------------------------------------------------------------------------------------------

mime_type	String		Optional. MIME type of the file as defined by sender

----------------------------------------------------------------------------------------------------------------------

file_size	Integer		Optional. File size

----------------------------------------------------------------------------------------------------------------------

type EditMessageCaption

type EditMessageCaption struct {
	SendJSON        `json:"-"`
	ChatID          ChatID                `json:"chat_id,omitempty"`
	MessageID       MessageID             `json:"message_id,omitempty"`
	InlineMessageID MessageID             `json:"inline_message_id,omitempty"`
	Caption         string                `json:"caption,omitempty"`
	ParseMode       string                `json:"parse_mode,omitempty"`
	ReplyMarkup     *InlineKeyboardMarkup `json:"reply_markup,omitempty"`
}

EditMessageCaption use this method to edit captions of messages sent by the bot or via the bot (for inline bots). On success, if edited message is sent by the bot, the edited Message is returned, otherwise True is returned. ----------------------------------------------------------------------------------------------------------------------

Parameter			Type					Required	Description

----------------------------------------------------------------------------------------------------------------------

chat_id				Integer or String		Optional	Required if inline_message_id is not specified.
														Unique identifier for the target chat or username
														of the target channel (in the format @channelusername)

----------------------------------------------------------------------------------------------------------------------

message_id			Integer					Optional	Required if inline_message_id is not specified.
														Identifier of the sent message

----------------------------------------------------------------------------------------------------------------------

inline_message_id	String					Optional	Required if chat_id and message_id are not specified.
														Identifier of the inline message

----------------------------------------------------------------------------------------------------------------------

caption				String					Optional	New caption of the message

----------------------------------------------------------------------------------------------------------------------

parse_mode			String					Optional	Send Markdown or HTML, if you want Telegram apps
														to show bold, italic, fixed-width text or inline URLs
														in the media caption.

----------------------------------------------------------------------------------------------------------------------

reply_markup		InlineKeyboardMarkup	Optional	A JSON-serialized object for an inline keyboard.

----------------------------------------------------------------------------------------------------------------------

type EditMessageLiveLocation

type EditMessageLiveLocation struct {
	SendJSON        `json:"-"`
	ChatID          ChatID                `json:"chat_id,omitempty"`
	MessageID       MessageID             `json:"message_id,omitempty"`
	InlineMessageID string                `json:"inline_message_id,omitempty"`
	Latitude        float32               `json:"latitude"`
	Longitude       float32               `json:"longitude"`
	ReplyMarkup     *InlineKeyboardMarkup `json:"reply_markup,omitempty"`
}

EditMessageLiveLocation use this method to edit live location messages sent by the bot or via the bot (for inline bots). A location can be edited until its live_period expires or editing is explicitly disabled by a call to stopMessageLiveLocation. On success, if the edited message was sent by the bot, the edited Message is returned, otherwise True is returned. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Optional Required if inline_message_id is not specified.

Unique identifier for the target chat or username of
the target channel (in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- message_id Integer Optional Required if inline_message_id is not specified.

Identifier of the sent message

---------------------------------------------------------------------------------------------------------------------- inline_message_id String Optional Required if chat_id and message_id are not specified.

Identifier of the inline message

---------------------------------------------------------------------------------------------------------------------- latitude Float number Yes Latitude of new location ---------------------------------------------------------------------------------------------------------------------- longitude Float number Yes Longitude of new location ---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional A JSON-serialized object for a new inline keyboard. ----------------------------------------------------------------------------------------------------------------------

type EditMessageReplyMarkup

type EditMessageReplyMarkup struct {
	SendJSON        `json:"-"`
	ChatID          ChatID                `json:"chat_id,omitempty"`
	MessageID       MessageID             `json:"message_id,omitempty"`
	InlineMessageID MessageID             `json:"inline_message_id,omitempty"`
	ReplyMarkup     *InlineKeyboardMarkup `json:"reply_markup,omitempty"`
}

EditMessageReplyMarkup use this method to edit only the reply markup of messages sent by the bot or via the bot (for inline bots). On success, if edited message is sent by the bot, the edited Message is returned, otherwise True is returned. ----------------------------------------------------------------------------------------------------------------------

Parameter			Type					Required	Description

----------------------------------------------------------------------------------------------------------------------

chat_id				Integer or String		Optional	Required if inline_message_id is not specified.
														Unique identifier for the target chat or username
														of the target channel (in the format @channelusername)

----------------------------------------------------------------------------------------------------------------------

message_id			Integer					Optional	Required if inline_message_id is not specified.
														Identifier of the sent message

----------------------------------------------------------------------------------------------------------------------

inline_message_id	String					Optional	Required if chat_id and message_id are not specified.
														Identifier of the inline message

----------------------------------------------------------------------------------------------------------------------

reply_markup		InlineKeyboardMarkup	Optional	A JSON-serialized object for an inline keyboard.

----------------------------------------------------------------------------------------------------------------------

type EditMessageText

type EditMessageText struct {
	SendJSON              `json:"-"`
	ChatID                ChatID                `json:"chat_id,omitempty"`
	MessageID             MessageID             `json:"message_id,omitempty"`
	InlineMessageID       MessageID             `json:"inline_message_id,omitempty"`
	Text                  string                `json:"text"`
	ParseMode             string                `json:"parse_mode,omitempty"`
	DisableWebPagePreview bool                  `json:"disable_web_page_preview,omitempty"`
	ReplyMarkup           *InlineKeyboardMarkup `json:"reply_markup,omitempty"`
}

EditMessageText use this method to edit text and game messages sent by the bot or via the bot (for inline bots). On success, if edited message is sent by the bot, the edited Message is returned, otherwise True is returned. ----------------------------------------------------------------------------------------------------------------------

Parameter					Type					Required	Description

----------------------------------------------------------------------------------------------------------------------

chat_id						Integer or String		Optional	Required if inline_message_id is not specified.
																Unique identifier for the target chat or username
																of the target channel (in the format @channelusername)

----------------------------------------------------------------------------------------------------------------------

message_id					Integer					Optional	Required if inline_message_id is not specified.
																Identifier of the sent message

----------------------------------------------------------------------------------------------------------------------

inline_message_id			String					Optional	Required if chat_id and message_id are not specified.
																Identifier of the inline message

----------------------------------------------------------------------------------------------------------------------

text						String					Yes			New text of the message

----------------------------------------------------------------------------------------------------------------------

parse_mode					String					Optional	Send Markdown or HTML, if you want Telegram apps
																to show bold, italic, fixed-width text or inline
																URLs in your bot's message.

----------------------------------------------------------------------------------------------------------------------

disable_web_page_preview	Boolean					Optional	Disables link previews for links in this message

----------------------------------------------------------------------------------------------------------------------

reply_markup				InlineKeyboardMarkup	Optional	A JSON-serialized object for an inline keyboard.

----------------------------------------------------------------------------------------------------------------------

type ExportChatInviteLink struct {
	SendJSON `json:"-"`
	ChatID   ChatID `json:"chat_id"`
}

ExportChatInviteLink use this method to generate a new invite link for a chat; any previously generated link is revoked. The bot must be an administrator in the chat for this to work and must have the appropriate admin rights. Returns the new invite link as String on success. Note: Each administrator in a chat generates their own invite links. Bots can't use invite links generated by other administrators. If you want your bot to work with invite links, it will need to generate its own link using exportChatInviteLink – after this the link will become available to the bot via the getChat method. If your bot needs to generate a new invite link replacing its previous one, use exportChatInviteLink again. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of the target channel

(in the format @channelusername)

----------------------------------------------------------------------------------------------------------------------

type Fields

type Fields map[string]interface{}

Fields represent map[string]interface{}

type File

type File struct {
	FileID   FileID `json:"file_id,omitempty"`
	FileSize int64  `json:"file_size,omitempty"`
	FilePath string `json:"file_path,omitempty"`
}

File represents a file ready to be downloaded. The file can be downloaded via the link https://api.telegram.org/file/bot<token>/<file_path>. It is guaranteed that the link will be valid for at least 1 hour. When the link expires, a new one can be requested by calling getFile. Maximum file size to download is 20 MB ----------------------------------------------------------------------------------------------------------------------

Field		Type		Description

----------------------------------------------------------------------------------------------------------------------

file_id		String		Unique identifier for this file

----------------------------------------------------------------------------------------------------------------------

file_size	Integer		Optional. File size, if known

----------------------------------------------------------------------------------------------------------------------

file_path	String		Optional. File path.
						Use https://api.telegram.org/file/bot<token>/<file_path> to get the file.

----------------------------------------------------------------------------------------------------------------------

type FileID

type FileID string

Audio represent unique uploaded file identity

type ForceReply

type ForceReply struct {
	ReplyMarkup `json:"-"`
	ForceReply  bool `json:"force_reply,omitempty"`
	Selective   bool `json:"selective,omitempty"`
}

ForceReply ----------------------------------------------------------------------------------------------------------------------

Field			Type		Description

----------------------------------------------------------------------------------------------------------------------

force_reply		True		Shows reply interface to the user, as if they manually
							selected the bot‘s message and tapped ’Reply'

----------------------------------------------------------------------------------------------------------------------

selective		Boolean		Optional. Use this parameter if you want to force reply
							from specific users only. Targets:
								1) users that are @mentioned in the text of the Message object;
								2) if the bot's message is a reply (has reply_to_message_id), sender
									of the original message.

----------------------------------------------------------------------------------------------------------------------

type ForwardMessage

type ForwardMessage struct {
	SendJSON            `json:"-"`
	ChatID              ChatID    `json:"chat_id"`
	FromChaID           ChatID    `json:"from_cha_id"`
	DisableNotification bool      `json:"disable_notification,omitempty"`
	MessageID           MessageID `json:"message_id"`
}

ForwardMessage use this method to forward messages of any kind. On success, the sent Message is returned. ----------------------------------------------------------------------------------------------------------------------

Parameter				Type				Required	Description

----------------------------------------------------------------------------------------------------------------------

chat_id					Integer or String	Yes			Unique identifier for the target chat or username of
														the target channel (in the format @channelusername)

----------------------------------------------------------------------------------------------------------------------

from_chat_id			Integer or String	Yes			Unique identifier for the chat where the original message
														was sent (or channel username in the format @channelusername)

----------------------------------------------------------------------------------------------------------------------

disable_notification	Boolean				Optional	Sends the message silently. Users will receive
														a notification with no sound.

----------------------------------------------------------------------------------------------------------------------

message_id				Integer				Yes			Message identifier in the chat specified in from_chat_id

----------------------------------------------------------------------------------------------------------------------

type Game

type Game struct {
	Title        string           `json:"title,omitempty"`
	Description  string           `json:"description,omitempty"`
	Photo        []*PhotoSize     `json:"photo,omitempty"`
	Text         string           `json:"text,omitempty"`
	TextEntities []*MessageEntity `json:"text_entities,omitempty"`
	Animation    *Animation       `json:"animation,omitempty"`
}

Game this object represents a game. Use BotFather to create and edit games, their short names will act as unique identifiers. ----------------------------------------------------------------------------------------------------------------------

Field			Type			Description

----------------------------------------------------------------------------------------------------------------------

title			String			Title of the game

----------------------------------------------------------------------------------------------------------------------

description		String			Description of the game

----------------------------------------------------------------------------------------------------------------------

photo			[]PhotoSize		Photo that will be displayed in the game message in chats.

----------------------------------------------------------------------------------------------------------------------

text			String			Optional. Brief description of the game or high scores included in the game message.
								Can be automatically edited to include current high scores for the game when
								the bot calls setGameScore, or manually edited using editMessageText.
								0-4096 characters.

----------------------------------------------------------------------------------------------------------------------

text_entities	[]MessageEntity	Optional. Special entities that appear in text, such as usernames,
								URLs, bot commands, etc.

----------------------------------------------------------------------------------------------------------------------

animation		Animation		Optional. Animation that will be displayed in the game message in chats.
								Upload via BotFather

----------------------------------------------------------------------------------------------------------------------

type GameHighScore

type GameHighScore struct {
	Position int32 `json:"position,omitempty"`
	User     *User `json:"user,omitempty"`
	Score    int64 `json:"score,omitempty"`
}

GameHighScore this object represents one row of the high scores table for a game. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- position Integer Position in high score table for the game ---------------------------------------------------------------------------------------------------------------------- user User User ---------------------------------------------------------------------------------------------------------------------- score Integer Score ----------------------------------------------------------------------------------------------------------------------

type GetChat

type GetChat struct {
	SendJSON `json:"-"`
	ChatID   ChatID `json:"chat_id"`
}

GetChat use this method to get up to date information about the chat (current name of the user for one-on-one conversations, current username of a user, group or channel, etc.). Returns a Chat object on success. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of

the target supergroup or channel (in the format @channelusername)

----------------------------------------------------------------------------------------------------------------------

type GetChatAdministrators

type GetChatAdministrators struct {
	SendJSON `json:"-"`
	ChatID   ChatID `json:"chat_id"`
}

GetChatAdministrators use this method to get a list of administrators in a chat. On success, returns an []ChatMember objects that contains information about all chat administrators except other bots. If the chat is a group or a supergroup and no administrators were appointed, only the creator will be returned. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of

the target supergroup or channel (in the format @channelusername)

----------------------------------------------------------------------------------------------------------------------

type GetChatMember

type GetChatMember struct {
	SendJSON `json:"-"`
	ChatID   ChatID `json:"chat_id"`
}

GetChatMember use this method to get information about a member of a chat. Returns a ChatMember object on success. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of

the target supergroup or channel (in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- user_id Integer Yes Unique identifier of the target user ----------------------------------------------------------------------------------------------------------------------

type GetChatMembersCount

type GetChatMembersCount struct {
	SendJSON `json:"-"`
	ChatID   ChatID `json:"chat_id"`
}

GetChatMembersCount use this method to get the number of members in a chat. Returns Int on success. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of

the target supergroup or channel (in the format @channelusername)

----------------------------------------------------------------------------------------------------------------------

type GetFile

type GetFile struct {
	SendJSON `json:"-"`
	FileID   FileID `json:"file_id"`
}

GetFile use this method to get basic info about a file and prepare it for downloading. For the moment, bots can download files of up to 20MB in size. On success, a File object is returned. The file can then be downloaded via the link https://api.telegram.org/file/bot<token>/<file_path>, where <file_path> is taken from the response. It is guaranteed that the link will be valid for at least 1 hour. When the link expires, a new one can be requested by calling getFile again. Note: This function may not preserve the original file name and MIME type. You should save the file's MIME type and name (if available) when the File object is received. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- file_id String Yes File identifier to get info about ----------------------------------------------------------------------------------------------------------------------

type GetGameHighScores

type GetGameHighScores struct {
	SendJSON        `json:"-"`
	UserID          ChatID    `json:"user_id"`
	ChatID          ChatID    `json:"chat_id,omitempty"`
	MessageID       MessageID `json:"message_id,omitempty"`
	InlineMessageID string    `json:"inline_message_id,omitempty"`
}

GetGameHighScores use this method to get data for high score tables. Will return the score of the specified user and several of his neighbors in a game. On success, returns an Array of GameHighScore objects. This method will currently return scores for the target user, plus two of his closest neighbors on each side. Will also return the top three users if the user and his neighbors are not among them. Please note that this behavior is subject to change. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- user_id Integer Yes Target user id ---------------------------------------------------------------------------------------------------------------------- chat_id Integer Optional Required if inline_message_id is not specified.

Unique identifier for the target chat

---------------------------------------------------------------------------------------------------------------------- message_id Integer Optional Required if inline_message_id is not specified.

Identifier of the sent message

---------------------------------------------------------------------------------------------------------------------- inline_message_id String Optional Required if chat_id and message_id are not specified.

Identifier of the inline message

----------------------------------------------------------------------------------------------------------------------

type GetMe

type GetMe struct {
	SendJSON `json:"-"`
}

GetMe a simple method for testing your bot's auth token. Requires no parameters. Returns basic information about the bot in form of a User object.

type GetStickerSet

type GetStickerSet struct {
	SendJSON `json:"-"`
	Name     string `json:"name"`
}

GetStickerSet use this method to get a sticker set. On success, a StickerSet object is returned. ----------------------------------------------------------------------------------------------------------------------

Parameter	Type	Required	Description

----------------------------------------------------------------------------------------------------------------------

name		String	Yes			Name of the sticker set

----------------------------------------------------------------------------------------------------------------------

type GetUpdates

type GetUpdates struct {
	SendJSON       `json:"-"`
	Offset         UpdateID `json:"offset,omitempty"`
	Limit          int32    `json:"limit,omitempty"`
	Timeout        Second   `json:"timeout,omitempty"`
	AllowedUpdates []string `json:"allowed_updates,omitempty"`
}

GetUpdates use this method to receive incoming updates using long polling (wiki). An Array of Update objects is returned. ---------------------------------------------------------------------------------------------------------------------

Parameter			Type		Required	Description

---------------------------------------------------------------------------------------------------------------------

Offset				Integer		Optional	Identifier of the first update to be returned.
											Must be greater by one than the highest among the identifiers of
											previously received updates. By default, updates starting with
											the earliest unconfirmed update are returned. An update is considered
											confirmed as soon as getUpdates is called with an Offset higher than
											its update_id. The negative Offset can be specified to retrieve updates
											starting from -Offset update from the end of the updates queue.
											All previous updates will forgotten.

---------------------------------------------------------------------------------------------------------------------

limit				Integer		Optional	Limits the number of updates to be retrieved.
											Values between 1—100 are accepted. Defaults to 100.

---------------------------------------------------------------------------------------------------------------------

timeout				Integer		Optional	Timeout in seconds for long polling.
											Defaults to 0, i.e. usual short polling. Should be positive,
											short polling should be used for testing purposes only.

---------------------------------------------------------------------------------------------------------------------

allowed_updates		[]String	Optional	List the types of updates you want your bot to receive.
											For example, specify [“message”,“edited_channel_post”,“callback_query”]
											to only receive updates of these types. See Update for a complete list
											of available update types. Specify an empty list to receive all updates
											regardless of type (default). If not specified, the previous setting
											will be used.
											Please note that this parameter doesn't affect updates created before
											the call to the getUpdates, so unwanted updates may be received for
											a short period of time.

---------------------------------------------------------------------------------------------------------------------

type GetUserProfilePhotos

type GetUserProfilePhotos struct {
	SendJSON `json:"-"`
	UserID   ChatID `json:"user_id"`
	Offset   int32  `json:"offset,omitempty"`
	Limit    int32  `json:"limit,omitempty"`
}

GetUserProfilePhotos use this method to get a list of profile pictures for a user. Returns a UserProfilePhotos object. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- user_id Integer Yes Unique identifier of the target user ---------------------------------------------------------------------------------------------------------------------- offset Integer Optional Sequential number of the first photo to be returned.

By default, all photos are returned.

---------------------------------------------------------------------------------------------------------------------- limit Integer Optional Limits the number of photos to be retrieved.

Values between 1—100 are accepted. Defaults to 100.

----------------------------------------------------------------------------------------------------------------------

type GetWebhookInfo

type GetWebhookInfo struct {
	SendJSON `json:"-"`
}

GetWebhookInfo use this method to get current webhook status. Requires no parameters. On success, returns a WebhookInfo object. If the bot is using getUpdates, will return an object with the baseURL field empty.

type HandleResp

type HandleResp func(*http.Response) error

HandleResp

type InlineKeyboardButton

type InlineKeyboardButton struct {
	Text                      string        `json:"text,omitempty"`
	URL                       string        `json:"baseURL,omitempty"`
	CallbackData              string        `json:"callback_data,omitempty"`
	SwitchInlineQuery         string        `json:"switch_inline_query,omitempty"`
	SwitchInlineQueryCurrChat string        `json:"switch_inline_query_current_chat,omitempty"`
	CallbackGame              *CallbackGame `json:"callback_game,omitempty"`
	Pay                       bool          `json:"pay,omitempty"`
}

InlineKeyboardButton represents one button of an inline keyboard. You must use exactly one of the optional fields. ----------------------------------------------------------------------------------------------------------------------

Field								Type			Description

----------------------------------------------------------------------------------------------------------------------

text								String			Label text on the button

----------------------------------------------------------------------------------------------------------------------

baseURL									String			Optional. HTTP or tg:// baseURL to be opened when button is pressed

----------------------------------------------------------------------------------------------------------------------

callback_data						String			Optional. Data to be sent in a callback query to the bot when
													button is pressed, 1-64 bytes

----------------------------------------------------------------------------------------------------------------------

switch_inline_query					String			Optional. If set, pressing the button will prompt the user
													to select one of their chats, open that chat and insert the
													bot‘s username and the specified inline query in the input field.
													Can be empty, in which case just the bot’s username will be inserted.
													Note: This offers an easy way for users to start using your
													bot in inline mode when they are currently in a private chat with it.
													Especially useful when combined with switch_pm…
													actions – in this case the user will be automatically returned
													to the chat they switched from, skipping the chat selection screen.

----------------------------------------------------------------------------------------------------------------------

switch_inline_query_current_chat	String			Optional. If set, pressing the button will insert the bot‘s
													username and the specified inline query in the current chat's
													input field. Can be empty, in which case only the bot’s username
													will be inserted. This offers a quick way for the user to open
													your bot in inline mode in the same chat – good for selecting
													something from multiple options.

----------------------------------------------------------------------------------------------------------------------

callback_game						CallbackGame	Optional. Description of the game that will be launched when
													the user presses the button. NOTE: This type of button must
													always be the first button in the first row.

----------------------------------------------------------------------------------------------------------------------

pay									Boolean			Optional. Specify True, to send a Pay button. NOTE: This type
													of button must always be the first button in the first row.

----------------------------------------------------------------------------------------------------------------------

type InlineKeyboardMarkup

type InlineKeyboardMarkup struct {
	ReplyMarkup    `json:"-"`
	InlineKeyboard [][]*InlineKeyboardButton `json:"inline_keyboard,omitempty"`
}

InlineKeyboardMarkup represents an inline keyboard that appears right next to the message it belongs to. ----------------------------------------------------------------------------------------------------------------------

Field				Type						Description

----------------------------------------------------------------------------------------------------------------------

inline_keyboard		[][]InlineKeyboardButton	Array of button rows, each represented by an Array
												of InlineKeyboardButton objects

----------------------------------------------------------------------------------------------------------------------

type InlineMessageID

type InlineMessageID string

InlineMessageID represent unique inline message identity

type InlineQuery

type InlineQuery struct {
	ID       InlineQueryID `json:"id,omitempty"`
	From     *User         `json:"from,omitempty"`
	Location *Location     `json:"location,omitempty"`
	Query    string        `json:"query,omitempty"`
	Offset   string        `json:"offset,omitempty"`
}

InlineQuery represents an incoming inline query. When the user sends an empty query, your bot could return some default or trending results. ----------------------------------------------------------------------------------------------------------------------

Field		Type		Description

----------------------------------------------------------------------------------------------------------------------

id			String		Unique identifier for this query

----------------------------------------------------------------------------------------------------------------------

from		User		Sender

----------------------------------------------------------------------------------------------------------------------

location	Location	Optional. Sender location, only for bots that request user location

----------------------------------------------------------------------------------------------------------------------

query		String		Text of the query (up to 512 characters)

----------------------------------------------------------------------------------------------------------------------

offset		String		Offset of the results to be returned, can be controlled by the bot

----------------------------------------------------------------------------------------------------------------------

type InlineQueryID

type InlineQueryID string

InlineQueryID represent unique query identity

type InlineQueryResult

type InlineQueryResult interface {
	// contains filtered or unexported methods
}

InlineQueryResult represents one result of an inline query. Telegram clients currently support results of the following 20 types: - InlineQueryResultCachedAudio - InlineQueryResultAudio - InlineQueryResultCachedDocument - InlineQueryResultDocument - InlineQueryResultCachedGif - InlineQueryResultGif - InlineQueryResultCachedMpeg4Gif - InlineQueryResultMpeg4Gif - InlineQueryResultCachedPhoto - InlineQueryResultPhoto - InlineQueryResultCachedSticker - InlineQueryResultCachedVideo - InlineQueryResultVideo - InlineQueryResultCachedVoice - InlineQueryResultVoice - InlineQueryResultArticle - InlineQueryResultContact - InlineQueryResultGame - InlineQueryResultLocation - InlineQueryResultVenue

type InlineQueryResultArticle

type InlineQueryResultArticle struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	Title               string                `json:"title,omitempty"`
	InputMessageContext InputMessageContent   `json:"input_message_context,omitempty"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup,omitempty"`
	URL                 string                `json:"baseURL,omitempty"`
	HideURL             bool                  `json:"hide_url,omitempty"`
	Description         string                `json:"description,omitempty"`
	ThumbURL            string                `json:"thumb_url,omitempty"`
	ThumbWidth          int32                 `json:"thumb_width,omitempty"`
	ThumbHeight         int32                 `json:"thumb_height,omitempty"`
}

InlineQueryResultArticle represents a link to an article or web page. ----------------------------------------------------------------------------------------------------------------------

Field					Type					Description

----------------------------------------------------------------------------------------------------------------------

type					String					Type of the result, must be article

----------------------------------------------------------------------------------------------------------------------

id						String					Unique identifier for this result, 1-64 Bytes

----------------------------------------------------------------------------------------------------------------------

title					String					Title of the result

----------------------------------------------------------------------------------------------------------------------

input_message_content	InputMessageContent		Content of the message to be sent

----------------------------------------------------------------------------------------------------------------------

reply_markup			InlineKeyboardMarkup	Optional. Inline keyboard attached to the message

----------------------------------------------------------------------------------------------------------------------

baseURL						String					Optional. URL of the result

----------------------------------------------------------------------------------------------------------------------

hide_url				Boolean					Optional. Pass True,
												if you don't want the URL to be shown in the message

----------------------------------------------------------------------------------------------------------------------

description				String					Optional. Short description of the result

----------------------------------------------------------------------------------------------------------------------

thumb_url				String					Optional. Url of the thumbnail for the result

----------------------------------------------------------------------------------------------------------------------

thumb_width				Integer					Optional. Thumbnail width

----------------------------------------------------------------------------------------------------------------------

thumb_height			Integer					Optional. Thumbnail height

----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultAudio

type InlineQueryResultAudio struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	AudioURL            string                `json:"audio_url,omitempty"`
	Title               string                `json:"title,omitempty"`
	Caption             string                `json:"caption,omitempty"`
	ParseMode           string                `json:"parse_mode,omitempty"`
	Performer           string                `json:"performer,omitempty"`
	AudioDuration       Second                `json:"audio_duration,omitempty"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup,omitempty"`
	InputMessageContent InputMessageContent   `json:"input_message_content,omitempty"`
}

InlineQueryResultAudio represents a link to an mp3 audio file. By default, this audio file will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the audio. Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be audio ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 bytes ---------------------------------------------------------------------------------------------------------------------- audio_url String A valid URL for the audio file ---------------------------------------------------------------------------------------------------------------------- title String Title ---------------------------------------------------------------------------------------------------------------------- caption String Optional. Caption, 0-1024 characters ---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional. Send Markdown or HTML,

if you want Telegram apps to show bold, italic, fixed-width text
or inline URLs in the media caption.

---------------------------------------------------------------------------------------------------------------------- performer String Optional. Performer ---------------------------------------------------------------------------------------------------------------------- audio_duration Integer Optional. Audio duration in seconds ---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ---------------------------------------------------------------------------------------------------------------------- input_message_content InputMessageContent Optional. Content of the message to be sent instead of the audio ----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultCachedAudio

type InlineQueryResultCachedAudio struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	AudioFileID         FileID                `json:"audio_file_id"`
	Caption             string                `json:"caption"`
	ParseMode           string                `json:"parse_mode"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup"`
	InputMessageContent InputMessageContent   `json:"input_message_content"`
}

InlineQueryResultCachedAudio represents a link to an mp3 audio file stored on the Telegram servers. By default, this audio file will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the audio. Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be audio ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 bytes ---------------------------------------------------------------------------------------------------------------------- audio_file_id String A valid file identifier for the audio file ---------------------------------------------------------------------------------------------------------------------- caption String Optional. Caption, 0-1024 characters ---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional. Send Markdown or HTML,

if you want Telegram apps to show bold, italic, fixed-width text
or inline URLs in the media caption.

---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ---------------------------------------------------------------------------------------------------------------------- input_message_content InputMessageContent Optional. Content of the message to be sent instead of the audio ----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultCachedDocument

type InlineQueryResultCachedDocument struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	DocumentFileID      FileID                `json:"document_file_id"`
	Description         string                `json:"description"`
	Caption             string                `json:"caption"`
	ParseMode           string                `json:"parse_mode"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup"`
	InputMessageContent InputMessageContent   `json:"input_message_content"`
}

InlineQueryResultCachedDocument represents a link to a file stored on the Telegram servers. By default, this file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the file. Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be document ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 bytes ---------------------------------------------------------------------------------------------------------------------- title String Title for the result ---------------------------------------------------------------------------------------------------------------------- document_file_id String A valid file identifier for the file ---------------------------------------------------------------------------------------------------------------------- description String Optional. Short description of the result ---------------------------------------------------------------------------------------------------------------------- caption String Optional. Caption of the document to be sent, 0-1024 characters ---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional. Send Markdown or HTML,

if you want Telegram apps to show bold, italic, fixed-width text
or inline URLs in the media caption.

---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ---------------------------------------------------------------------------------------------------------------------- input_message_content InputMessageContent Optional. Content of the message to be sent instead of the file ----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultCachedGif

type InlineQueryResultCachedGif struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	GifFileID           FileID                `json:"gif_file_id"`
	Title               string                `json:"title"`
	Caption             string                `json:"caption"`
	ParseMode           string                `json:"parse_mode"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup"`
	InputMessageContent InputMessageContent   `json:"input_message_content"`
}

InlineQueryResultCachedGif represents a link to an animated GIF file stored on the Telegram servers. By default, this animated GIF file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with specified content instead of the animation. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be gif ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 bytes ---------------------------------------------------------------------------------------------------------------------- gif_file_id String A valid file identifier for the GIF file ---------------------------------------------------------------------------------------------------------------------- title String Optional. Title for the result ---------------------------------------------------------------------------------------------------------------------- caption String Optional. Caption of the GIF file to be sent, 0-1024 characters ---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional. Send Markdown or HTML,

if you want Telegram apps to show bold, italic, fixed-width text
or inline URLs in the media caption.

---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ---------------------------------------------------------------------------------------------------------------------- input_message_content InputMessageContent Optional. Content of the message to be sent

instead of the GIF animation

----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultCachedMPEG4Gif

type InlineQueryResultCachedMPEG4Gif struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	MPEG4FileID         FileID                `json:"mpeg4_file_id"`
	Title               string                `json:"title"`
	Caption             string                `json:"caption"`
	ParseMode           string                `json:"parse_mode"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup"`
	InputMessageContent InputMessageContent   `json:"input_message_content"`
}

InlineQueryResultCachedMPEG4Gif represents a link to a video animation (H.264/MPEG-4 AVC video without sound) stored on the Telegram servers. By default, this animated MPEG-4 file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the animation. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be mpeg4_gif ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 bytes ---------------------------------------------------------------------------------------------------------------------- mpeg4_file_id String A valid file identifier for the MP4 file ---------------------------------------------------------------------------------------------------------------------- title String Optional. Title for the result ---------------------------------------------------------------------------------------------------------------------- caption String Optional. Caption of the MPEG-4 file to be sent, 0-1024 characters ---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional. Send Markdown or HTML,

if you want Telegram apps to show bold, italic, fixed-width text
or inline URLs in the media caption.

---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ---------------------------------------------------------------------------------------------------------------------- input_message_content InputMessageContent Optional. Content of the message to be sent

instead of the video animation

----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultCachedPhoto

type InlineQueryResultCachedPhoto struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	PhotoFileID         FileID                `json:"photo_file_id"`
	Title               string                `json:"title"`
	Description         string                `json:"description"`
	Caption             string                `json:"caption"`
	ParseMode           string                `json:"parse_mode"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup"`
	InputMessageContent InputMessageContent   `json:"input_message_content"`
}

InlineQueryResultCachedPhoto represents a link to a photo stored on the Telegram servers. By default, this photo will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the photo. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be photo ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 bytes ---------------------------------------------------------------------------------------------------------------------- photo_file_id String A valid file identifier of the photo ---------------------------------------------------------------------------------------------------------------------- title String Optional. Title for the result ---------------------------------------------------------------------------------------------------------------------- description String Optional. Short description of the result ---------------------------------------------------------------------------------------------------------------------- caption String Optional. Caption of the photo to be sent, 0-1024 characters ---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional. Send Markdown or HTML,

if you want Telegram apps to show bold, italic, fixed-width text
or inline URLs in the media caption.

---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ---------------------------------------------------------------------------------------------------------------------- input_message_content InputMessageContent Optional. Content of the message to be sent instead of the photo ----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultCachedSticker

type InlineQueryResultCachedSticker struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	StickerFileID       FileID                `json:"sticker_file_id"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup"`
	InputMessageContent InputMessageContent   `json:"input_message_content"`
}

InlineQueryResultCachedSticker represents a link to a sticker stored on the Telegram servers. By default, this sticker will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the sticker. Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be sticker ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 bytes ---------------------------------------------------------------------------------------------------------------------- sticker_file_id String A valid file identifier of the sticker ---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ---------------------------------------------------------------------------------------------------------------------- input_message_content InputMessageContent Optional. Content of the message to be sent instead of the sticker ----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultCachedVideo

type InlineQueryResultCachedVideo struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	VideoFileID         FileID                `json:"video_file_id"`
	Title               string                `json:"title"`
	Description         string                `json:"description"`
	Caption             string                `json:"caption"`
	ParseMode           string                `json:"parse_mode"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup"`
	InputMessageContent InputMessageContent   `json:"input_message_content"`
}

InlineQueryResultCachedVideo represents a link to a video file stored on the Telegram servers. By default, this video file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the video. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be video ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 bytes ---------------------------------------------------------------------------------------------------------------------- video_file_id String A valid file identifier for the video file ---------------------------------------------------------------------------------------------------------------------- title String Title for the result ---------------------------------------------------------------------------------------------------------------------- description String Optional. Short description of the result ---------------------------------------------------------------------------------------------------------------------- caption String Optional. Caption of the video to be sent, 0-1024 characters ---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional. Send Markdown or HTML,

if you want Telegram apps to show bold, italic, fixed-width text
or inline URLs in the media caption.

---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ---------------------------------------------------------------------------------------------------------------------- input_message_content InputMessageContent Optional. Content of the message to be sent instead of the video ----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultCachedVoice

type InlineQueryResultCachedVoice struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	VoiceFileID         FileID                `json:"voice_file_id"`
	Title               string                `json:"title"`
	Caption             string                `json:"caption"`
	ParseMode           string                `json:"parse_mode"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup"`
	InputMessageContent InputMessageContent   `json:"input_message_content"`
}

InlineQueryResultCachedVoice represents a link to a voice message stored on the Telegram servers. By default, this voice message will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the voice message. Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be voice ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 bytes ---------------------------------------------------------------------------------------------------------------------- voice_file_id String A valid file identifier for the voice message ---------------------------------------------------------------------------------------------------------------------- title String Voice message title ---------------------------------------------------------------------------------------------------------------------- caption String Optional. Caption, 0-1024 characters ---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional. Send Markdown or HTML,

if you want Telegram apps to show bold, italic, fixed-width text
or inline URLs in the media caption.

---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ---------------------------------------------------------------------------------------------------------------------- input_message_content InputMessageContent Optional. Content of the message to be sent

instead of the voice message

----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultContact

type InlineQueryResultContact struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	PhoneNumber         string                `json:"phone_number,omitempty"`
	FirstName           string                `json:"first_name,omitempty"`
	LastName            string                `json:"last_name,omitempty"`
	VCard               string                `json:"vcard,omitempty"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup,omitempty"`
	InputMessageContent InputMessageContent   `json:"input_message_content,omitempty"`
	ThumbURL            string                `json:"thumb_url,omitempty"`
	ThumbWidth          int32                 `json:"thumb_width,omitempty"`
	ThumbHeight         int32                 `json:"thumb_height,omitempty"`
}

InlineQueryResultContact represents a contact with a phone number. By default, this contact will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the contact. Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be contact ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 Bytes ---------------------------------------------------------------------------------------------------------------------- phone_number String Contact's phone number ---------------------------------------------------------------------------------------------------------------------- first_name String Contact's first name ---------------------------------------------------------------------------------------------------------------------- last_name String Optional. Contact's last name ---------------------------------------------------------------------------------------------------------------------- vcard String Optional. Additional data about the contact in

the form of a vCard, 0-2048 bytes

---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ---------------------------------------------------------------------------------------------------------------------- input_message_content InputMessageContent Optional. Content of the message to be sent instead of the contact ---------------------------------------------------------------------------------------------------------------------- thumb_url String Optional. Url of the thumbnail for the result ---------------------------------------------------------------------------------------------------------------------- thumb_width Integer Optional. Thumbnail width ---------------------------------------------------------------------------------------------------------------------- thumb_height Integer Optional. Thumbnail height ----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultDocument

type InlineQueryResultDocument struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	Title               string                `json:"title,omitempty"`
	Caption             string                `json:"caption,omitempty"`
	ParseMode           string                `json:"parse_mode,omitempty"`
	DocumentURL         string                `json:"document_url,omitempty"`
	MimeType            string                `json:"mime_type,omitempty"`
	Description         string                `json:"description,omitempty"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup,omitempty"`
	InputMessageContent InputMessageContent   `json:"input_message_content,omitempty"`
	ThumbURL            string                `json:"thumb_url,omitempty"`
	ThumbWidth          int32                 `json:"thumb_width,omitempty"`
	ThumbHeight         int32                 `json:"thumb_height,omitempty"`
}

InlineQueryResultDocument represents a link to a file. By default, this file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the file. Currently, only .PDF and .ZIP files can be sent using this method. Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be document ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 bytes ---------------------------------------------------------------------------------------------------------------------- title String Title for the result ---------------------------------------------------------------------------------------------------------------------- caption String Optional. Caption of the document to be sent, 0-1024 characters ---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional. Send Markdown or HTML,

if you want Telegram apps to show bold, italic, fixed-width text
or inline URLs in the media caption.

---------------------------------------------------------------------------------------------------------------------- document_url String A valid URL for the file ---------------------------------------------------------------------------------------------------------------------- mime_type String Mime type of the content of the file,

either “application/pdf” or “application/zip”

---------------------------------------------------------------------------------------------------------------------- description String Optional. Short description of the result ---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ---------------------------------------------------------------------------------------------------------------------- input_message_content InputMessageContent Optional. Content of the message to be sent instead of the file ---------------------------------------------------------------------------------------------------------------------- thumb_url String Optional. URL of the thumbnail (jpeg only) for the file ---------------------------------------------------------------------------------------------------------------------- thumb_width Integer Optional. Thumbnail width ---------------------------------------------------------------------------------------------------------------------- thumb_height Integer Optional. Thumbnail height ----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultGame

type InlineQueryResultGame struct {
	InlineQueryResult `json:"-"`
	Type              InlineQueryResultType `json:"type,omitempty"`
	ID                InlineQueryResultID   `json:"id,omitempty"`
	GameShortName     string                `json:"game_short_name"`
	ReplyMarkup       *InlineKeyboardMarkup `json:"reply_markup"`
}

InlineQueryResultGame represents a Game. Note: This will only work in Telegram versions released after October 1, 2016. Older clients will not display any inline results if a game result is among them. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be game ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 bytes ---------------------------------------------------------------------------------------------------------------------- game_short_name String Short name of the game ---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultGif

type InlineQueryResultGif struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	GIFURL              string                `json:"gif_url,omitempty"`
	GIFWidth            int32                 `json:"gif_width,omitempty"`
	GIFHeight           int32                 `json:"gif_height,omitempty"`
	GIFDuration         Second                `json:"gif_duration,omitempty"`
	ThumbURL            string                `json:"thumb_url,omitempty"`
	Title               string                `json:"title,omitempty"`
	Caption             string                `json:"caption,omitempty"`
	ParseMode           string                `json:"parse_mode,omitempty"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup,omitempty"`
	InputMessageContent InputMessageContent   `json:"input_message_content,omitempty"`
}

InlineQueryResultGif represents a link to an animated GIF file. By default, this animated GIF file will be sent by the user with optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the animation. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be gif ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 bytes ---------------------------------------------------------------------------------------------------------------------- gif_url String A valid URL for the GIF file. File size must not exceed 1MB ---------------------------------------------------------------------------------------------------------------------- gif_width Integer Optional. Width of the GIF ---------------------------------------------------------------------------------------------------------------------- gif_height Integer Optional. Height of the GIF ---------------------------------------------------------------------------------------------------------------------- gif_duration Integer Optional. Duration of the GIF ---------------------------------------------------------------------------------------------------------------------- thumb_url String URL of the static thumbnail for the result (jpeg or gif) ---------------------------------------------------------------------------------------------------------------------- title String Optional. Title for the result ---------------------------------------------------------------------------------------------------------------------- caption String Optional. Caption of the GIF file to be sent, 0-1024 characters ---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional. Send Markdown or HTML, if you want Telegram apps to show

bold, italic, fixed-width text or inline URLs in the media caption.

---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ---------------------------------------------------------------------------------------------------------------------- input_message_content InputMessageContent Optional. Content of the message to be sent instead

of the GIF animation

----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultID

type InlineQueryResultID string

InlineQueryResultID represent unique inline query result identity

type InlineQueryResultLocation

type InlineQueryResultLocation struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	Latitude            float32               `json:"latitude,omitempty"`
	Longitude           float32               `json:"longitude,omitempty"`
	Title               string                `json:"title,omitempty"`
	LivePeriod          Second                `json:"live_period,omitempty"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup,omitempty"`
	InputMessageContent InputMessageContent   `json:"input_message_content,omitempty"`
	ThumbURL            string                `json:"thumb_url,omitempty"`
	ThumbWidth          int32                 `json:"thumb_width,omitempty"`
	ThumbHeight         int32                 `json:"thumb_height,omitempty"`
}

InlineQueryResultLocation represents a location on a map. By default, the location will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the location. Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be location ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 Bytes ---------------------------------------------------------------------------------------------------------------------- latitude Float number Location latitude in degrees ---------------------------------------------------------------------------------------------------------------------- longitude Float number Location longitude in degrees ---------------------------------------------------------------------------------------------------------------------- title String Location title ---------------------------------------------------------------------------------------------------------------------- live_period Integer Optional. Period in seconds for which the location can be updated,

should be between 60 and 86400.

---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ---------------------------------------------------------------------------------------------------------------------- input_message_content InputMessageContent Optional. Content of the message to be sent instead of the location ---------------------------------------------------------------------------------------------------------------------- thumb_url String Optional. Url of the thumbnail for the result ---------------------------------------------------------------------------------------------------------------------- thumb_width Integer Optional. Thumbnail width ---------------------------------------------------------------------------------------------------------------------- thumb_height Integer Optional. Thumbnail height ----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultMPEG4Gif

type InlineQueryResultMPEG4Gif struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	MPEG4URL            string                `json:"mpeg4_url,omitempty"`
	MPEG4Width          int32                 `json:"mpeg4_width,omitempty"`
	MPEG4Height         int32                 `json:"mpeg4_height,omitempty"`
	MPEG4Duration       Second                `json:"mpeg4_duration,omitempty"`
	ThumbURL            string                `json:"thumb_url,omitempty"`
	Title               string                `json:"title,omitempty"`
	ParseMode           string                `json:"parse_mode,omitempty"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup,omitempty"`
	InputMessageContent InputMessageContent   `json:"input_message_content,omitempty"`
}

InlineQueryResultMPEG4Gif represents a link to a video animation (H.264/MPEG-4 AVC video without sound). By default, this animated MPEG-4 file will be sent by the user with optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the animation. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be mpeg4_gif ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 bytes ---------------------------------------------------------------------------------------------------------------------- mpeg4_url String A valid URL for the MP4 file. File size must not exceed 1MB ---------------------------------------------------------------------------------------------------------------------- mpeg4_width Integer Optional. Video width ---------------------------------------------------------------------------------------------------------------------- mpeg4_height Integer Optional. Video height ---------------------------------------------------------------------------------------------------------------------- mpeg4_duration Integer Optional. Video duration ---------------------------------------------------------------------------------------------------------------------- thumb_url String URL of the static thumbnail (jpeg or gif) for the result ---------------------------------------------------------------------------------------------------------------------- title String Optional. Title for the result ---------------------------------------------------------------------------------------------------------------------- caption String Optional. Caption of the MPEG-4 file to be sent, 0-1024 characters ---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional. Send Markdown or HTML,

if you want Telegram apps to show bold, italic, fixed-width text
or inline URLs in the media caption.

---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ---------------------------------------------------------------------------------------------------------------------- input_message_content InputMessageContent Optional. Content of the message to be sent instead of

the video animation

----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultPhoto

type InlineQueryResultPhoto struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	PhotoURL            string                `json:"photo_url,omitempty"`
	ThumbURL            string                `json:"thumb_url,omitempty"`
	PhotoWidth          int32                 `json:"photo_width,omitempty"`
	PhotoHeight         int32                 `json:"height_width,omitempty"`
	Title               string                `json:"title,omitempty"`
	Description         string                `json:"description,omitempty"`
	Caption             string                `json:"caption,omitempty"`
	ParseMode           string                `json:"parse_mode,omitempty"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup,omitempty"`
	InputMessageContext InputMessageContent   `json:"input_message_context,omitempty"`
}

InlineQueryResultPhoto represents a link to a photo. By default, this photo will be sent by the user with optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the photo. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be photo ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 bytes ---------------------------------------------------------------------------------------------------------------------- photo_url String A valid URL of the photo. Photo must be in jpeg format.

Photo size must not exceed 5MB

---------------------------------------------------------------------------------------------------------------------- thumb_url String URL of the thumbnail for the photo ---------------------------------------------------------------------------------------------------------------------- photo_width Integer Optional. Width of the photo ---------------------------------------------------------------------------------------------------------------------- photo_height Integer Optional. Height of the photo ---------------------------------------------------------------------------------------------------------------------- title String Optional. Title for the result ---------------------------------------------------------------------------------------------------------------------- description String Optional. Short description of the result ---------------------------------------------------------------------------------------------------------------------- caption String Optional. Caption of the photo to be sent, 0-1024 characters ---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional. Send Markdown or HTML, if you want Telegram apps to show

bold, italic, fixed-width text or inline URLs in the media caption.

---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ---------------------------------------------------------------------------------------------------------------------- input_message_content InputMessageContent Optional. Content of the message to be sent instead of the photo ----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultType

type InlineQueryResultType string

InlineQueryResultType represent inline query result type

const (
	IQRTAudio    InlineQueryResultType = "audio"
	IQRTDocument InlineQueryResultType = "document"
	IQRTGIF      InlineQueryResultType = "gif"
	IQRTMPEG4GIF InlineQueryResultType = "mpeg4_gif"
	IQRTPhoto    InlineQueryResultType = "photo"
	IQRTSticker  InlineQueryResultType = "sticker"
	IQRTVideo    InlineQueryResultType = "video"
	IQRTVoice    InlineQueryResultType = "voice"
	IQRTArticle  InlineQueryResultType = "article"
	IQRTContact  InlineQueryResultType = "contact"
	IQRTGame     InlineQueryResultType = "game"
	IQRTLocation InlineQueryResultType = "location"
	IQRTVenue    InlineQueryResultType = "venue"
)

type InlineQueryResultVenue

type InlineQueryResultVenue struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	Latitude            float32               `json:"latitude,omitempty"`
	Longitude           float32               `json:"longitude,omitempty"`
	Title               string                `json:"title,omitempty"`
	Address             string                `json:"address,omitempty"`
	FoursquareID        string                `json:"foursquare_id,omitempty"`
	FoursquareType      string                `json:"foursquare_type,omitempty"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup,omitempty"`
	InputMessageContent InputMessageContent   `json:"input_message_content,omitempty"`
	ThumbURL            string                `json:"thumb_url,omitempty"`
	ThumbWidth          int32                 `json:"thumb_width,omitempty"`
	ThumbHeight         int32                 `json:"thumb_height,omitempty"`
}

InlineQueryResultVenue represents a venue. By default, the venue will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the venue. Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be venue ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 Bytes ---------------------------------------------------------------------------------------------------------------------- latitude Float Latitude of the venue location in degrees ---------------------------------------------------------------------------------------------------------------------- longitude Float Longitude of the venue location in degrees ---------------------------------------------------------------------------------------------------------------------- title String Title of the venue ---------------------------------------------------------------------------------------------------------------------- address String Address of the venue ---------------------------------------------------------------------------------------------------------------------- foursquare_id String Optional. Foursquare identifier of the venue if known ---------------------------------------------------------------------------------------------------------------------- foursquare_type String Optional. Foursquare type of the venue, if known.

(For example, “arts_entertainment/default”,
“arts_entertainment/aquarium” or “food/icecream”.)

---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ---------------------------------------------------------------------------------------------------------------------- input_message_content InputMessageContent Optional. Content of the message to be sent instead of the venue ---------------------------------------------------------------------------------------------------------------------- thumb_url String Optional. Url of the thumbnail for the result ---------------------------------------------------------------------------------------------------------------------- thumb_width Integer Optional. Thumbnail width ---------------------------------------------------------------------------------------------------------------------- thumb_height Integer Optional. Thumbnail height ----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultVideo

type InlineQueryResultVideo struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	VideoURL            string                `json:"video_url,omitempty"`
	MimeType            string                `json:"mime_type,omitempty"`
	ThumbURL            string                `json:"thumb_url,omitempty"`
	Title               string                `json:"title,omitempty"`
	Caption             string                `json:"caption,omitempty"`
	ParseMode           string                `json:"parse_mode,omitempty"`
	VideoWidth          int32                 `json:"video_width,omitempty"`
	VideoHeight         int32                 `json:"video_height,omitempty"`
	Description         string                `json:"description,omitempty"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup,omitempty"`
	InputMessageContent InputMessageContent   `json:"input_message_content,omitempty"`
}

InlineQueryResultVideo represents a link to a page containing an embedded video player or a video file. By default, this video file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the video. If an InlineQueryResultVideo message contains an embedded video (e.g., YouTube), you must replace its content using input_message_content. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be video ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 bytes ---------------------------------------------------------------------------------------------------------------------- video_url String A valid URL for the embedded video player or video file ---------------------------------------------------------------------------------------------------------------------- mime_type String Mime type of the content of video baseURL, “text/html” or “video/mp4” ---------------------------------------------------------------------------------------------------------------------- thumb_url String URL of the thumbnail (jpeg only) for the video ---------------------------------------------------------------------------------------------------------------------- title String Title for the result ---------------------------------------------------------------------------------------------------------------------- caption String Optional. Caption of the video to be sent, 0-1024 characters ---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional. Send Markdown or HTML,

if you want Telegram apps to show bold, italic, fixed-width text
or inline URLs in the media caption.

---------------------------------------------------------------------------------------------------------------------- video_width Integer Optional. Video width ---------------------------------------------------------------------------------------------------------------------- video_height Integer Optional. Video height ---------------------------------------------------------------------------------------------------------------------- video_duration Integer Optional. Video duration in seconds ---------------------------------------------------------------------------------------------------------------------- description String Optional. Short description of the result ---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ---------------------------------------------------------------------------------------------------------------------- input_message_content InputMessageContent Optional. Content of the message to be sent instead of the video.

This field is required if InlineQueryResultVideo is used
to send an HTML-page as a result (e.g., a YouTube video).

----------------------------------------------------------------------------------------------------------------------

type InlineQueryResultVoice

type InlineQueryResultVoice struct {
	InlineQueryResult   `json:"-"`
	Type                InlineQueryResultType `json:"type,omitempty"`
	ID                  InlineQueryResultID   `json:"id,omitempty"`
	VoiceURL            string                `json:"voice_url,omitempty"`
	Title               string                `json:"title,omitempty"`
	Caption             string                `json:"caption,omitempty"`
	ParseMode           string                `json:"parse_mode,omitempty"`
	VoiceDuration       Second                `json:"voice_duration,omitempty"`
	ReplyMarkup         *InlineKeyboardMarkup `json:"reply_markup,omitempty"`
	InputMessageContent InputMessageContent   `json:"input_message_content,omitempty"`
}

InlineQueryResultVoice represents a link to a voice recording in an .ogg container encoded with OPUS. By default, this voice recording will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the the voice message. Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- type String Type of the result, must be voice ---------------------------------------------------------------------------------------------------------------------- id String Unique identifier for this result, 1-64 bytes ---------------------------------------------------------------------------------------------------------------------- voice_url String A valid URL for the voice recording ---------------------------------------------------------------------------------------------------------------------- title String Recording title ---------------------------------------------------------------------------------------------------------------------- caption String Optional. Caption, 0-1024 characters ---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional. Send Markdown or HTML,

if you want Telegram apps to show bold, italic, fixed-width text
or inline URLs in the media caption.

---------------------------------------------------------------------------------------------------------------------- voice_duration Integer Optional. Recording duration in seconds ---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional. Inline keyboard attached to the message ---------------------------------------------------------------------------------------------------------------------- input_message_content InputMessageContent Optional. Content of the message to be sent

instead of the voice recording

----------------------------------------------------------------------------------------------------------------------

type InputContactMessageContent

type InputContactMessageContent struct {
	InputMessageContent `json:"-"`
	PhoneNumber         string `json:"phone_number"`
	FirstName           string `json:"first_name"`
	LastName            string `json:"last_name"`
	VCard               string `json:"vcard"`
}

InputContactMessageContent represents the content of a contact message to be sent as the result of an inline query. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- phone_number String Contact's phone number ---------------------------------------------------------------------------------------------------------------------- first_name String Contact's first name ---------------------------------------------------------------------------------------------------------------------- last_name String Optional. Contact's last name ---------------------------------------------------------------------------------------------------------------------- vcard String Optional. Additional data about the contact in the form of a vCard, 0-2048 bytes ----------------------------------------------------------------------------------------------------------------------

type InputFile

type InputFile interface{}

InputFile this object represents the contents of a file to be uploaded. Must be posted using multipart/form-data in the usual way that files are uploaded via the browser.

  • Sending files there are three ways to send files (photos, stickers, audio, media, etc.):

If the file is already stored somewhere on the Telegram servers, you don't need to reupload it: each file object has a file_id field, simply pass this file_id as a parameter instead of uploading. There are no limits for files sent this way. Provide Telegram with an HTTP URL for the file to be sent. Telegram will download and send the file. 5 MB max size for photos and 20 MB max for other types of content. Post the file using multipart/form-data in the usual way that files are uploaded via the browser. 10 MB max size for photos, 50 MB for other files.

  • Sending by file_id

It is not possible to change the file type when resending by file_id. I.e. a video can't be sent as a photo, a photo can't be sent as a document, etc. It is not possible to resend thumbnails. Resending a photo by file_id will send all of its sizes. file_id is unique for each individual bot and can't be transferred from one bot to another.

  • Sending by URL

When sending by URL the target file must have the correct MIME type (e.g., audio/mpeg for sendAudio, etc.). In sendDocument, sending by URL will currently only work for gif, pdf and zip files. To use sendVoice, the file must have the type audio/ogg and be no more than 1MB in size. 1–20MB voice notes will be sent as files. Other configurations may work but we can't guarantee that they will.

Must be string or UploadingFile. Using for FileID, URL or *os.FIle

type InputLocationMessageContent

type InputLocationMessageContent struct {
	InputMessageContent `json:"-"`
	Latitude            float32 `json:"latitude"`
	Longitude           float32 `json:"longitude"`
	LivePeriod          Second  `json:"live_period"`
}

InputLocationMessageContent represents the content of a location message to be sent as the result of an inline query. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- latitude Float Latitude of the location in degrees ---------------------------------------------------------------------------------------------------------------------- longitude Float Longitude of the location in degrees ---------------------------------------------------------------------------------------------------------------------- live_period Integer Optional. Period in seconds for which the location can be updated,

should be between 60 and 86400.

----------------------------------------------------------------------------------------------------------------------

type InputMedia

type InputMedia interface {
	JSONAble() bool
	WriteInputMediaData(w *multipart.Writer) error
}

TODO: implement InputMedia represents the content of a media message to be sent. It should be one of: - InputMediaAnimation - InputMediaDocument - InputMediaAudio - InputMediaPhoto - InputMediaVideo

type InputMediaAnimation

type InputMediaAnimation struct {
	Type      string    `json:"type,omitempty"`
	Media     string    `json:"media,omitempty"`
	Thumb     InputFile `json:"thumb,omitempty"`
	Caption   string    `json:"caption,omitempty"`
	ParseMode string    `json:"parse_mode,omitempty"`
	Width     int32     `json:"width,omitempty"`
	Height    int32     `json:"height,omitempty"`
	Duration  Second    `json:"duration,omitempty"`
}

TODO: InputMediaAnimation represents an animation file (GIF or H.264/MPEG-4 AVC video without sound) to be sent. ----------------------------------------------------------------------------------------------------------------------

Field		Type		Description

----------------------------------------------------------------------------------------------------------------------

type		String		Type of the result, must be animation

----------------------------------------------------------------------------------------------------------------------

media		String		File to send. Pass a file_id to send a file that exists on the Telegram
						servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet,
						or pass “attach://<file_attach_name>” to upload a new one using multipart/form-data
						under <file_attach_name> name. More info on Sending Files »

----------------------------------------------------------------------------------------------------------------------

thumb		InputFile	Optional. Thumbnail of the file sent; can be ignored if thumbnail generation for the file
			or String	is supported server-side. The thumbnail should be in JPEG format and less than 200 kB
						in size. A thumbnail‘s width and height should not exceed 90. Ignored if the file is not
						uploaded using multipart/form-data. Thumbnails can’t be reused and can be only uploaded
						as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded
						using multipart/form-data under <file_attach_name>. More info on Sending Files »

----------------------------------------------------------------------------------------------------------------------

caption		String		Optional. Caption of the animation to be sent, 0-1024 characters

----------------------------------------------------------------------------------------------------------------------

parse_mode	String		Optional. Send Markdown or HTML, if you want Telegram apps to show bold, italic,
						fixed-width text or inline URLs in the media caption.

----------------------------------------------------------------------------------------------------------------------

width		Integer		Optional. Animation width

----------------------------------------------------------------------------------------------------------------------

height		Integer		Optional. Animation height

----------------------------------------------------------------------------------------------------------------------

duration	Integer		Optional. Animation duration

----------------------------------------------------------------------------------------------------------------------

type InputMediaAudio

type InputMediaAudio struct {
	Type      string    `json:"type,omitempty"`
	Media     string    `json:"media,omitempty"`
	Thumb     InputFile `json:"thumb,omitempty"`
	Caption   string    `json:"caption,omitempty"`
	ParseMode string    `json:"parse_mode,omitempty"`
	Duration  int32     `json:"duration,omitempty"`
	Performer string    `json:"performer,omitempty"`
	Title     string    `json:"title,omitempty"`
}

TODO: InputMediaAudio represents an audio file to be treated as music to be sent. ----------------------------------------------------------------------------------------------------------------------

Field		Type		Description

----------------------------------------------------------------------------------------------------------------------

type		String		Type of the result, must be audio

----------------------------------------------------------------------------------------------------------------------

media		String		File to send. Pass a file_id to send a file that exists on the Telegram
						servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet,
						or pass “attach://<file_attach_name>” to upload a new one using multipart/form-data
						under <file_attach_name> name. More info on Sending Files »

----------------------------------------------------------------------------------------------------------------------

thumb		InputFile	Optional. Thumbnail of the file sent; can be ignored if thumbnail generation for the file
			or String	is supported server-side. The thumbnail should be in JPEG format and less than 200 kB
						in size. A thumbnail‘s width and height should not exceed 90. Ignored if the file is not
						uploaded using multipart/form-data. Thumbnails can’t be reused and can be only uploaded
						as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded
						using multipart/form-data under <file_attach_name>. More info on Sending Files »

----------------------------------------------------------------------------------------------------------------------

caption		String		Optional. Caption of the audio to be sent, 0-1024 characters

----------------------------------------------------------------------------------------------------------------------

parse_mode	String		Optional. Send Markdown or HTML, if you want Telegram apps to show bold, italic,
						fixed-width text or inline URLs in the media caption.

----------------------------------------------------------------------------------------------------------------------

duration	Integer		Optional. Duration of the audio in seconds

----------------------------------------------------------------------------------------------------------------------

performer	String		Optional. Performer of the audio

----------------------------------------------------------------------------------------------------------------------

title		String		Optional. Title of the audio

----------------------------------------------------------------------------------------------------------------------

type InputMediaDocument

type InputMediaDocument struct {
	Type      string    `json:"type,omitempty"`
	Media     string    `json:"media,omitempty"`
	Thumb     InputFile `json:"thumb,omitempty"`
	Caption   string    `json:"caption,omitempty"`
	ParseMode string    `json:"parse_mode,omitempty"`
}

TODO: InputMediaDocument represents a general file to be sent. ----------------------------------------------------------------------------------------------------------------------

Field		Type		Description

----------------------------------------------------------------------------------------------------------------------

type		String		Type of the result, must be document

----------------------------------------------------------------------------------------------------------------------

media		String		File to send. Pass a file_id to send a file that exists on the Telegram
						servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet,
						or pass “attach://<file_attach_name>” to upload a new one using multipart/form-data
						under <file_attach_name> name. More info on Sending Files »

----------------------------------------------------------------------------------------------------------------------

thumb		InputFile 	Optional. Thumbnail of the file sent; can be ignored if thumbnail generation for the file
			or String	is supported server-side. The thumbnail should be in JPEG format and less than 200 kB
						in size. A thumbnail‘s width and height should not exceed 90. Ignored if the file is
						not uploaded using multipart/form-data. Thumbnails can’t be reused and can be only uploaded
						as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded
						using multipart/form-data under <file_attach_name>. More info on Sending Files »

----------------------------------------------------------------------------------------------------------------------

caption		String		Optional. Caption of the document to be sent, 0-1024 characters

----------------------------------------------------------------------------------------------------------------------

parse_mode	String		Optional. Send Markdown or HTML, if you want Telegram apps to show bold, italic,
						fixed-width text or inline URLs in the media caption.

----------------------------------------------------------------------------------------------------------------------

type InputMediaPhoto

type InputMediaPhoto struct {
	Type      string `json:"type,omitempty"`
	Media     string `json:"media,omitempty"`
	Caption   string `json:"caption,omitempty"`
	ParseMode string `json:"parse_mode,omitempty"`
}

TODO: InputMediaPhoto represents a photo to be sent. ----------------------------------------------------------------------------------------------------------------------

Field		Type	Description

----------------------------------------------------------------------------------------------------------------------

type		String	Type of the result, must be photo

----------------------------------------------------------------------------------------------------------------------

media		String	File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended),
					pass an HTTP URL for Telegram to get a file from the Internet, or pass
					“attach://<file_attach_name>” to upload a new one using multipart/form-data
					under <file_attach_name> name. More info on Sending Files »

----------------------------------------------------------------------------------------------------------------------

caption		String	Optional. Caption of the photo to be sent, 0-1024 characters

----------------------------------------------------------------------------------------------------------------------

parse_mode	String	Optional. Send Markdown or HTML, if you want Telegram apps to show bold, italic,
					fixed-width text or inline URLs in the media caption.

----------------------------------------------------------------------------------------------------------------------

type InputMediaVideo

type InputMediaVideo struct {
	Type              string    `json:"type,omitempty"`
	Media             string    `json:"media,omitempty"`
	Thumb             InputFile `json:"thumb,omitempty"`
	Caption           string    `json:"caption,omitempty"`
	ParseMode         string    `json:"parse_mode,omitempty"`
	Width             int32     `json:"width,omitempty"`
	Height            int32     `json:"height,omitempty"`
	Duration          Second    `json:"duration,omitempty"`
	SupportsStreaming bool      `json:"supports_streaming,omitempty"`
}

TODO: InputMediaVideo represents a video to be sent. ----------------------------------------------------------------------------------------------------------------------

Field				Type		Description

----------------------------------------------------------------------------------------------------------------------

type				String		Type of the result, must be video

----------------------------------------------------------------------------------------------------------------------

media				String		File to send. Pass a file_id to send a file that exists on the Telegram
								servers (recommended), pass an HTTP URL for Telegram to get a file from
								the Internet, or pass “attach://<file_attach_name>” to upload a new one using
								multipart/form-data under <file_attach_name> name. More info on Sending Files »

----------------------------------------------------------------------------------------------------------------------

thumb				InputFile 	Optional. Thumbnail of the file sent; can be ignored if thumbnail generation
					or String	for the file is supported server-side. The thumbnail should be in JPEG format and
								less than 200 kB in size. A thumbnail‘s width and height should not exceed 90.
								Ignored if the file is not uploaded using multipart/form-data.
								Thumbnails can’t be reused and can be only uploaded as a new file, so you can pass
								“attach://<file_attach_name>” if the thumbnail was uploaded using
								multipart/form-data under <file_attach_name>. More info on Sending Files »

----------------------------------------------------------------------------------------------------------------------

caption				String		Optional. Caption of the video to be sent, 0-1024 characters

----------------------------------------------------------------------------------------------------------------------

parse_mode			String		Optional. Send Markdown or HTML, if you want Telegram apps to show bold, italic,
								fixed-width text or inline URLs in the media caption.

----------------------------------------------------------------------------------------------------------------------

width				Integer		Optional. Video width

----------------------------------------------------------------------------------------------------------------------

height				Integer		Optional. Video height

----------------------------------------------------------------------------------------------------------------------

duration			Integer		Optional. Video duration

----------------------------------------------------------------------------------------------------------------------

supports_streaming	Boolean		Optional. Pass True, if the uploaded video is suitable for streaming

----------------------------------------------------------------------------------------------------------------------

type InputMessageContent

type InputMessageContent interface {
	// contains filtered or unexported methods
}

InputMessageContent this object represents the content of a message to be sent as a result of an inline query. Telegram clients currently support the following 4 types: - InputTextMessageContent - InputLocationMessageContent - InputVenueMessageContent - InputContactMessageContent

type InputTextMessageContent

type InputTextMessageContent struct {
	InputMessageContent   `json:"-"`
	MessageText           string `json:"message_text"`
	ParseMode             string `json:"parse_mode"`
	DisableWebPagePreview bool   `json:"disable_web_page_preview"`
}

InputTextMessageContent represents the content of a text message to be sent as the result of an inline query. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- message_text String Text of the message to be sent, 1-4096 characters ---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional. Send Markdown or HTML,

if you want Telegram apps to show bold, italic, fixed-width text
or inline URLs in your bot's message.

---------------------------------------------------------------------------------------------------------------------- disable_web_page_preview Boolean Optional. Disables link previews for links in the sent message ----------------------------------------------------------------------------------------------------------------------

type InputVenueMessageContent

type InputVenueMessageContent struct {
	InputMessageContent `json:"-"`
	Latitude            float32 `json:"latitude"`
	Longitude           float32 `json:"longitude"`
	Title               string  `json:"title"`
	Address             string  `json:"address"`
	FoursquareID        string  `json:"foursquare_id"`
	FoursquareType      string  `json:"foursquare_type"`
}

InputVenueMessageContent represents the content of a venue message to be sent as the result of an inline query. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- latitude Float Latitude of the venue in degrees ---------------------------------------------------------------------------------------------------------------------- longitude Float Longitude of the venue in degrees ---------------------------------------------------------------------------------------------------------------------- title String Name of the venue ---------------------------------------------------------------------------------------------------------------------- address String Address of the venue ---------------------------------------------------------------------------------------------------------------------- foursquare_id String Optional. Foursquare identifier of the venue, if known ---------------------------------------------------------------------------------------------------------------------- foursquare_type String Optional. Foursquare type of the venue, if known.

(For example, “arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.)

----------------------------------------------------------------------------------------------------------------------

type Invoice

type Invoice struct {
	Title          string `json:"title,omitempty"`
	Description    string `json:"description,omitempty"`
	StartParameter string `json:"start_parameter,omitempty"`
	Currency       string `json:"currency,omitempty"`
	TotalAmount    Amount `json:"total_amount,omitempty"`
}

Invoice this object contains basic information about an invoice. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- title String Product name ---------------------------------------------------------------------------------------------------------------------- description String Product description ---------------------------------------------------------------------------------------------------------------------- start_parameter String Unique bot deep-linking parameter that can be used to generate this invoice ---------------------------------------------------------------------------------------------------------------------- currency String Three-letter ISO 4217 currency code ---------------------------------------------------------------------------------------------------------------------- total_amount Integer Total price in the smallest units of the currency (integer, not float/double).

For example, for a price of US$ 1.45 pass amount = 145.
See the exp parameter in currencies.json,
it shows the number of digits past the decimal point for each currency
(2 for the majority of currencies).

----------------------------------------------------------------------------------------------------------------------

type KeyboardButton

type KeyboardButton struct {
	Text            string `json:"text,omitempty"`
	RequestContact  bool   `json:"request_contact,omitempty"`
	RequestLocation bool   `json:"request_location,omitempty"`
}

KeyboardButton ----------------------------------------------------------------------------------------------------------------------

Field				Type		Description

----------------------------------------------------------------------------------------------------------------------

text				String		Text of the button. If none of the optional fields are used, it will be sent
								as a message when the button is pressed

----------------------------------------------------------------------------------------------------------------------

request_contact		Boolean		Optional. If True, the user's phone number will be sent as a contact when
								the button is pressed. Available in private chats only

----------------------------------------------------------------------------------------------------------------------

request_location	Boolean		Optional. If True, the user's current location will be sent when
								the button is pressed. Available in private chats only

----------------------------------------------------------------------------------------------------------------------

type KickChatMember

type KickChatMember struct {
	SendJSON  `json:"-"`
	ChatID    ChatID   `json:"chat_id"`
	UserID    ChatID   `json:"user_id"`
	UntilDate UnixTime `json:"until_date,omitempty"`
}

KickChatMember use this method to kick a user from a group, a supergroup or a channel. In the case of supergroups and channels, the user will not be able to return to the group on their own using invite links, etc., unless unbanned first. The bot must be an administrator in the chat for this to work and must have the appropriate admin rights. Returns True on success. Note: In regular groups (non-supergroups), this method will only work if the ‘All Members Are Admins’ setting is off in the target group. Otherwise members may only be removed by the group's creator or by the member that added them. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target group or username of

the target supergroup or channel (in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- user_id Integer Yes Unique identifier of the target user ---------------------------------------------------------------------------------------------------------------------- until_date Integer Optional Date when the user will be unbanned, unix time.

If user is banned for more than 366 days or less than 30 seconds
from the current time they are considered to be banned forever

----------------------------------------------------------------------------------------------------------------------

type LabeledPrice

type LabeledPrice struct {
	Label  string `json:"label,omitempty"`
	Amount Amount `json:"amount,omitempty"`
}

LabeledPrice this object represents a portion of the price for goods or services. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- label String Portion label ---------------------------------------------------------------------------------------------------------------------- amount Integer Price of the product in the smallest units of the currency (integer, not float/double).

For example, for a price of US$ 1.45 pass amount = 145.
See the exp parameter in currencies.json,
it shows the number of digits past the decimal point for each currency
(2 for the majority of currencies).

----------------------------------------------------------------------------------------------------------------------

type LeaveChat

type LeaveChat struct {
	SendJSON `json:"-"`
	ChatID   ChatID `json:"chat_id"`
}

LeaveChat use this method for your bot to leave a group, supergroup or channel. Returns True on success. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of

the target supergroup or channel (in the format @channelusername)

----------------------------------------------------------------------------------------------------------------------

type Location

type Location struct {
	Longitude float32 `json:"longitude,omitempty"`
	Latitude  float32 `json:"latitude,omitempty"`
}

Location represents a point on the map. ----------------------------------------------------------------------------------------------------------------------

Field	Type	Description

----------------------------------------------------------------------------------------------------------------------

longitude	Float	Longitude as defined by sender

----------------------------------------------------------------------------------------------------------------------

latitude	Float	Latitude as defined by sender

----------------------------------------------------------------------------------------------------------------------

type MaskPosition

type MaskPosition struct {
	Point  string  `json:"point,omitempty"`
	XShift float32 `json:"x_shift,omitempty"`
	YShift float32 `json:"y_shift,omitempty"`
	Scale  float32 `json:"scale,omitempty"`
}

MaskPosition this object describes the position on faces where a mask should be placed by default. ----------------------------------------------------------------------------------------------------------------------

Field		Type	Description

----------------------------------------------------------------------------------------------------------------------

point		String	The part of the face relative to which the mask should be placed.
					One of “forehead”, “eyes”, “mouth”, or “chin”.

----------------------------------------------------------------------------------------------------------------------

x_shift		Float 	number	Shift by X-axis measured in widths of the mask scaled to the face size,
					from left to right. For example, choosing -1.0 will place mask just to the left of
					the default mask position.

----------------------------------------------------------------------------------------------------------------------

y_shift		Float 	number	Shift by Y-axis measured in heights of the mask scaled to the face size,
					from top to bottom. For example, 1.0 will place the mask just below the default mask position.

----------------------------------------------------------------------------------------------------------------------

scale		Float 	number	Mask scaling coefficient. For example, 2.0 means double size.

----------------------------------------------------------------------------------------------------------------------

type Message

type Message struct {
	ID                    MessageID          `json:"message_id,omitempty"`
	From                  *User              `json:"from,omitempty"`
	Date                  UnixTime           `json:"date,omitempty"`
	Chat                  *Chat              `json:"chat,omitempty"`
	ForwardFrom           *User              `json:"forward_from,omitempty"`
	ForwardFromChat       *Chat              `json:"forward_from_chat,omitempty"`
	ForwardFromMessageID  MessageID          `json:"forward_from_message_id,omitempty"`
	ForwardSignature      string             `json:"forward_signature,omitempty"`
	ForwardDate           UnixTime           `json:"forward_date,omitempty"`
	ReplyToMessage        *Message           `json:"reply_to_message,omitempty"`
	EditDate              UnixTime           `json:"edit_date,omitempty"`
	MediaGroupID          string             `json:"media_group_id,omitempty"`
	AuthorSignature       string             `json:"author_signature,omitempty"`
	Text                  string             `json:"text,omitempty"`
	Entities              []*MessageEntity   `json:"entities,omitempty"`
	CaptionEntities       []*MessageEntity   `json:"caption_entities,omitempty"`
	Audio                 *Audio             `json:"audio,omitempty"`
	Document              *Document          `json:"document,omitempty"`
	Animation             *Animation         `json:"animation,omitempty"`
	Game                  *Game              `json:"game,omitempty"`
	Photo                 []*PhotoSize       `json:"photo,omitempty"`
	Sticker               *Sticker           `json:"sticker,omitempty"`
	Video                 *Video             `json:"video,omitempty"`
	Voice                 *Voice             `json:"voice,omitempty"`
	VideoNote             *VideoNote         `json:"video_note,omitempty"`
	Caption               string             `json:"caption,omitempty"`
	Contact               *Contact           `json:"contact,omitempty"`
	Location              *Location          `json:"location,omitempty"`
	Venue                 *Venue             `json:"venue,omitempty"`
	NewChatMembers        []*User            `json:"new_chat_members,omitempty"`
	LeftChatMember        *User              `json:"left_chat_member,omitempty"`
	NewChatTitle          string             `json:"new_chat_title,omitempty"`
	NewChatPhoto          []*PhotoSize       `json:"new_chat_photo,omitempty"`
	DeleteChatPhoto       bool               `json:"delete_chat_photo,omitempty"`
	GroupChatCreated      bool               `json:"group_chat_created,omitempty"`
	SupergroupChatCreated bool               `json:"supergroup_chat_created,omitempty"`
	ChannelChatCreated    bool               `json:"channel_chat_created,omitempty"`
	MigrateToChatID       ChatID             `json:"migrate_to_chat_id,omitempty"`
	MigrateFromChatID     ChatID             `json:"migrate_from_chat_id,omitempty"`
	PinnedMessage         *Message           `json:"pinned_message,omitempty"`
	Invoice               *Invoice           `json:"invoice,omitempty"`
	SuccessfulPayment     *SuccessfulPayment `json:"successful_payment,omitempty"`
	ConnectedWebsite      string             `json:"connected_website,omitempty"`
	PassportData          *PassportData      `json:"passport_data,omitempty"`
}

Message represent telegram message ----------------------------------------------------------------------------------------------------------------------

Field					Type				Description

----------------------------------------------------------------------------------------------------------------------

message_id				Integer				Unique message identifier inside this chat

----------------------------------------------------------------------------------------------------------------------

from					User				Optional. Sender, empty for messages sent to channels

----------------------------------------------------------------------------------------------------------------------

date					Integer				Date the message was sent in Unix time

----------------------------------------------------------------------------------------------------------------------

chat					Chat				Conversation the message belongs to

----------------------------------------------------------------------------------------------------------------------

forward_from			User				Optional. For forwarded messages, sender of the original message

----------------------------------------------------------------------------------------------------------------------

forward_from_chat		Chat				Optional. For messages forwarded from channels,
											information about the original channel

----------------------------------------------------------------------------------------------------------------------

forward_from_message_id	Integer				Optional. For messages forwarded from channels,
											identifier of the original message in the channel

----------------------------------------------------------------------------------------------------------------------

forward_signature		String				Optional. For messages forwarded from channels,
											signature of the post author if present

----------------------------------------------------------------------------------------------------------------------

forward_date			Integer				Optional. For forwarded messages,
											date the original message was sent in Unix time

----------------------------------------------------------------------------------------------------------------------

reply_to_message		Message				Optional. For replies, the original message.
											Note that the Message object in this field will not contain further
											reply_to_message fields even if it itself is a reply.

----------------------------------------------------------------------------------------------------------------------

edit_date				Integer				Optional. Date the message was last edited in Unix time

----------------------------------------------------------------------------------------------------------------------

media_group_id			String				Optional. The unique identifier of a media message group
											this message belongs to

----------------------------------------------------------------------------------------------------------------------

author_signature		String				Optional. Signature of the post author for messages in channels

----------------------------------------------------------------------------------------------------------------------

text					String				Optional. For text messages,
											the actual UTF-8 text of the message, 0-4096 characters.

----------------------------------------------------------------------------------------------------------------------

entities				[]MessageEntity		Optional. For text messages, special entities like usernames,
											URLs, bot commands, etc. that appear in the text

----------------------------------------------------------------------------------------------------------------------

caption_entities		[]MessageEntity		Optional. For messages with a caption, special entities like usernames,
											URLs, bot commands, etc. that appear in the caption

----------------------------------------------------------------------------------------------------------------------

audio					Audio				Optional. Message is an audio file, information about the file

----------------------------------------------------------------------------------------------------------------------

document				Document			Optional. Message is a general file, information about the file

----------------------------------------------------------------------------------------------------------------------

animation				Animation			Optional. Message is an animation, information about the animation.
											For backward compatibility, when this field is set,
											the document field will also be set

----------------------------------------------------------------------------------------------------------------------

game					Game				Optional. Message is a game, information about the game.
											More about games »

----------------------------------------------------------------------------------------------------------------------

photo					[]PhotoSize			Optional. Message is a photo, available sizes of the photo

----------------------------------------------------------------------------------------------------------------------

sticker					Sticker				Optional. Message is a sticker, information about the sticker

----------------------------------------------------------------------------------------------------------------------

video					Video				Optional. Message is a video, information about the video

----------------------------------------------------------------------------------------------------------------------

voice					Voice				Optional. Message is a voice message, information about the file

----------------------------------------------------------------------------------------------------------------------

video_note				VideoNote			Optional. Message is a video note, information about the video message

----------------------------------------------------------------------------------------------------------------------

caption					String				Optional. Caption for the animation, audio, document, photo,
											video or voice, 0-1024 characters

----------------------------------------------------------------------------------------------------------------------

contact					Contact				Optional. Message is a shared contact, information about the contact

----------------------------------------------------------------------------------------------------------------------

location				Location			Optional. Message is a shared location, information about the location

----------------------------------------------------------------------------------------------------------------------

venue					Venue				Optional. Message is a venue, information about the venue

----------------------------------------------------------------------------------------------------------------------

new_chat_members		[]User				Optional. New members that were added to the group or supergroup and
											information about them (the bot itself may be one of these members)

----------------------------------------------------------------------------------------------------------------------

left_chat_member		User				Optional. A member was removed from the group,
											information about them (this member may be the bot itself)

----------------------------------------------------------------------------------------------------------------------

new_chat_title			String				Optional. A chat title was changed to this value

----------------------------------------------------------------------------------------------------------------------

new_chat_photo			[]PhotoSize			Optional. A chat photo was change to this value

----------------------------------------------------------------------------------------------------------------------

delete_chat_photo		True				Optional. Service message: the chat photo was deleted

----------------------------------------------------------------------------------------------------------------------

group_chat_created		True				Optional. Service message: the group has been created

----------------------------------------------------------------------------------------------------------------------

supergroup_chat_created	True				Optional. Service message: the supergroup has been created.
											This field can‘t be received in a message coming through updates,
											because bot can’t be a member of a supergroup when it is created.
											It can only be found in reply_to_message if someone replies to a very
											first message in a directly created supergroup.

----------------------------------------------------------------------------------------------------------------------

channel_chat_created	True				Optional. Service message: the channel has been created.
											This field can‘t be received in a message coming through updates,
											because bot can’t be a member of a channel when it is created.
											It can only be found in reply_to_message if someone replies to a very
											first message in a channel.

----------------------------------------------------------------------------------------------------------------------

migrate_to_chat_id		Integer				Optional. The group has been migrated to a supergroup with the specified
											identifier. This number may be greater than 32 bits and some programming
											languages may have difficulty/silent defects in interpreting it.
											But it is smaller than 52 bits, so a signed 64 bit integer or
											double-precision float type are safe for storing this identifier.

----------------------------------------------------------------------------------------------------------------------

migrate_from_chat_id	Integer				Optional. The supergroup has been migrated from a group with
											the specified identifier. This number may be greater than 32 bits
											and some programming languages may have difficulty/silent defects
											in interpreting it. But it is smaller than 52 bits, so a signed
											64 bit integer or double-precision float type are safe for storing
											this identifier.

----------------------------------------------------------------------------------------------------------------------

pinned_message			Message				Optional. Specified message was pinned. Note that the Message object
											in this field will not contain further reply_to_message fields
											even if it is itself a reply.

----------------------------------------------------------------------------------------------------------------------

invoice					Invoice				Optional. Message is an invoice for a payment,
											information about the invoice. More about payments »

----------------------------------------------------------------------------------------------------------------------

successful_payment		SuccessfulPayment	Optional. Message is a service message about a successful payment,
											information about the payment. More about payments »

----------------------------------------------------------------------------------------------------------------------

connected_website		String				Optional. The domain name of the website on which
											the user has logged in. More about Telegram Login »

----------------------------------------------------------------------------------------------------------------------

passport_data			PassportData		Optional. Telegram Passport data

----------------------------------------------------------------------------------------------------------------------

type MessageEntity

type MessageEntity struct {
	Type   string `json:"type,omitempty"`
	Offset int32  `json:"offset,omitempty"`
	Length int32  `json:"length,omitempty"`
	URL    string `json:"baseURL,omitempty"`
	User   *User  `json:"user,omitempty"`
}

MessageEntity represents one special entity in a text message. For example, hashtags, usernames, URLs, etc. ----------------------------------------------------------------------------------------------------------------------

Field		Type		Description

----------------------------------------------------------------------------------------------------------------------

type		String		Type of the entity. Can be mention (@username), hashtag, cashtag, bot_command, baseURL, email,
						phone_number, bold (bold text), italic (italic text), code (monowidth string),
						pre (monowidth block), text_link (for clickable text URLs),
						text_mention (for users without usernames)

----------------------------------------------------------------------------------------------------------------------

offset		Integer		Offset in UTF-16 code units to the start of the entity

----------------------------------------------------------------------------------------------------------------------

length		Integer		Length of the entity in UTF-16 code units

----------------------------------------------------------------------------------------------------------------------

baseURL			String		Optional. For “text_link” only, baseURL that will be opened after user taps on the text

----------------------------------------------------------------------------------------------------------------------

user		User		Optional. For “text_mention” only, the mentioned user

----------------------------------------------------------------------------------------------------------------------

type MessageID

type MessageID int64

MessageID represent unique telegram message identity

type NewReq

type NewReq func() (*http.Request, error)

NewReq

type OrderInfo

type OrderInfo struct {
	Name            string           `json:"name,omitempty"`
	PhoneNumber     string           `json:"phone_number,omitempty"`
	EMail           string           `json:"email,omitempty"`
	ShippingAddress *ShippingAddress `json:"shipping_address,omitempty"`
}

OrderInfo represents information about an order. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- name String Optional. User name ---------------------------------------------------------------------------------------------------------------------- phone_number String Optional. User's phone number ---------------------------------------------------------------------------------------------------------------------- email String Optional. User email ---------------------------------------------------------------------------------------------------------------------- shipping_address ShippingAddress Optional. User shipping address ----------------------------------------------------------------------------------------------------------------------

type PassportData

type PassportData struct {
}

PassportData contains information about Telegram Passport data shared with the bot by the user. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- data []EncryptedPassportElement Array with information about documents and other Telegram Passport elements

that was shared with the bot

---------------------------------------------------------------------------------------------------------------------- credentials EncryptedCredentials Encrypted credentials required to decrypt the data ----------------------------------------------------------------------------------------------------------------------

type PhotoSize

type PhotoSize struct {
	FileID   FileID `json:"file_id,omitempty"`
	Width    int32  `json:"width,omitempty"`
	Height   int32  `json:"height,omitempty"`
	FileSize int64  `json:"file_size,omitempty"`
}

PhotoSize represents one size of a photo or a file / sticker thumbnail. ----------------------------------------------------------------------------------------------------------------------

Field		Type		Description

----------------------------------------------------------------------------------------------------------------------

file_id		String		Unique identifier for this file

----------------------------------------------------------------------------------------------------------------------

width		Integer		Photo width

----------------------------------------------------------------------------------------------------------------------

height		Integer		Photo height

----------------------------------------------------------------------------------------------------------------------

file_size	Integer		Optional. File size

----------------------------------------------------------------------------------------------------------------------

type PinChatMessage

type PinChatMessage struct {
	SendJSON            `json:"-"`
	ChatID              ChatID    `json:"chat_id"`
	MessageID           MessageID `json:"message_id"`
	DisableNotification bool      `json:"disable_notification,omitempty"`
}

PinChatMessage use this method to pin a message in a supergroup or a channel. The bot must be an administrator in the chat for this to work and must have the ‘can_pin_messages’ admin right in the supergroup or ‘can_edit_messages’ admin right in the channel. Returns True on success. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or

username of the target channel (in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- message_id Integer Yes Identifier of a message to pin ---------------------------------------------------------------------------------------------------------------------- disable_notification Boolean Optional Pass True, if it is not necessary to send a notification

to all chat members about the new pinned message.
Notifications are always disabled in channels.

----------------------------------------------------------------------------------------------------------------------

type PreCheckoutQuery

type PreCheckoutQuery struct {
	ID               string     `json:"id,omitempty"`
	From             *User      `json:"from,omitempty"`
	Currency         string     `json:"currency,omitempty"`
	TotalAmount      Amount     `json:"total_amount,omitempty"`
	InvoicePayload   string     `json:"invoice_payload,omitempty"`
	ShippingOptionID string     `json:"shipping_option_id,omitempty"`
	OrderInfo        *OrderInfo `json:"order_info,omitempty"`
}

PreCheckoutQuery contains information about an incoming pre-checkout query. ----------------------------------------------------------------------------------------------------------------------

Field				Type		Description

----------------------------------------------------------------------------------------------------------------------

id					String		Unique query identifier

----------------------------------------------------------------------------------------------------------------------

from				User		User who sent the query

----------------------------------------------------------------------------------------------------------------------

currency			String		Three-letter ISO 4217 currency code

----------------------------------------------------------------------------------------------------------------------

total_amount		Integer		Total price in the smallest units of the currency (integer, not float/double).
								For example, for a price of US$ 1.45 pass amount = 145.
								See the exp parameter in currencies.json, it shows the number of digits past
								the decimal point for each currency (2 for the majority of currencies).

----------------------------------------------------------------------------------------------------------------------

invoice_payload		String		API specified invoice payload

----------------------------------------------------------------------------------------------------------------------

shipping_option_id	String		Optional. Identifier of the shipping option chosen by the user

----------------------------------------------------------------------------------------------------------------------

order_info			OrderInfo	Optional. Order info provided by the user

----------------------------------------------------------------------------------------------------------------------

type ProcessingUpdate

type ProcessingUpdate func(context.Context, *Update)

ProcessingUpdate represent function that processed single update

type PromoteChatMember

type PromoteChatMember struct {
	SendJSON           `json:"-"`
	ChatID             ChatID `json:"chat_id"`
	UserID             ChatID `json:"user_id"`
	CanChangeInfo      bool   `json:"can_change_info,omitempty"`
	CanPostMessages    bool   `json:"can_post_messages,omitempty"`
	CanEditMessages    bool   `json:"can_edit_messages,omitempty"`
	CanDeleteMessages  bool   `json:"can_delete_messages,omitempty"`
	CanInviteUsers     bool   `json:"can_invite_users,omitempty"`
	CanRestrictMembers bool   `json:"can_restrict_members,omitempty"`
	CanPinMessages     bool   `json:"can_pin_messages,omitempty"`
	CanPromoteMembers  bool   `json:"can_promote_members,omitempty"`
}

PromoteChatMember use this method to promote or demote a user in a supergroup or a channel. The bot must be an administrator in the chat for this to work and must have the appropriate admin rights. Pass False for all boolean parameters to demote a user. Returns True on success. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of the target

channel (in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- user_id Integer Yes Unique identifier of the target user ---------------------------------------------------------------------------------------------------------------------- can_change_info Boolean Optional Pass True, if the administrator can change chat title,

photo and other settings

---------------------------------------------------------------------------------------------------------------------- can_post_messages Boolean Optional Pass True, if the administrator

can create channel posts, channels only

---------------------------------------------------------------------------------------------------------------------- can_edit_messages Boolean Optional Pass True, if the administrator can edit messages of

other users and can pin messages, channels only

---------------------------------------------------------------------------------------------------------------------- can_delete_messages Boolean Optional Pass True, if the administrator can delete messages of other users ---------------------------------------------------------------------------------------------------------------------- can_invite_users Boolean Optional Pass True, if the administrator can invite new users to the chat ---------------------------------------------------------------------------------------------------------------------- can_restrict_members Boolean Optional Pass True, if the administrator can restrict,

ban or unban chat members

---------------------------------------------------------------------------------------------------------------------- can_pin_messages Boolean Optional Pass True, if the administrator can pin messages,

supergroups only

---------------------------------------------------------------------------------------------------------------------- can_promote_members Boolean Optional Pass True, if the administrator can add new administrators

with a subset of his own privileges or demote administrators
that he has promoted, directly or indirectly
(promoted by administrators that were appointed by him)

----------------------------------------------------------------------------------------------------------------------

type ReplyKeyboardMarkup

type ReplyKeyboardMarkup struct {
	ReplyMarkup     `json:"-"`
	Keyboard        [][]*KeyboardButton `json:"keyboard,omitempty"`
	ResizeKeyboard  bool                `json:"resize_keyboard,omitempty"`
	OneTimeKeyboard bool                `json:"one_time_keyboard,omitempty"`
	Selective       bool                `json:"selective,omitempty"`
}

ReplyKeyboardMarkup ----------------------------------------------------------------------------------------------------------------------

Field				Type				Description

----------------------------------------------------------------------------------------------------------------------

keyboard			[][]KeyboardButton	Array of button rows, each represented by an Array of KeyboardButton objects

----------------------------------------------------------------------------------------------------------------------

resize_keyboard		Boolean				Optional. Requests clients to resize the keyboard vertically for optimal
										fit (e.g., make the keyboard smaller if there are just two rows of buttons).
										Defaults to false, in which case the custom keyboard is always of the same
										height as the app's standard keyboard.

----------------------------------------------------------------------------------------------------------------------

one_time_keyboard	Boolean				Optional. Requests clients to hide the keyboard as soon as it's been used.
										The keyboard will still be available, but clients will automatically display
										the usual letter-keyboard in the chat – the user can press a special button
										in the input field to see the custom keyboard again. Defaults to false.

----------------------------------------------------------------------------------------------------------------------

selective			Boolean				Optional. Use this parameter if you want to show the keyboard to specific
										users only.
										Targets:
											1) users that are @mentioned in the text of	the Message object;
											2) if the bot's message is a reply (has reply_to_message_id),
												sender of the original message.
										Example: A user requests to change the bot‘s language, bot
										replies to the request with a keyboard to select the new language.
										Other users in the group don’t see the keyboard.

----------------------------------------------------------------------------------------------------------------------

type ReplyKeyboardRemove

type ReplyKeyboardRemove struct {
	ReplyMarkup    `json:"-"`
	RemoveKeyboard bool `json:"remove_keyboard,omitempty"`
	Selective      bool `json:"selective,omitempty"`
}

ReplyKeyboardRemove ----------------------------------------------------------------------------------------------------------------------

Field				Type		Description

----------------------------------------------------------------------------------------------------------------------

remove_keyboard		True		Requests clients to remove the custom keyboard (user will not be able to summon
								this keyboard; if you want to hide the keyboard from sight but keep it accessible,
								use one_time_keyboard in ReplyKeyboardMarkup)

----------------------------------------------------------------------------------------------------------------------

selective			Boolean		Optional. Use this parameter if you want to remove the keyboard for specific
								users only. Targets:
									1) users that are @mentioned in the text of the Message object;
									2) if the bot's message is a reply (has reply_to_message_id), sender
										of the original message. Example: A user votes in a poll, bot returns
										confirmation message in reply to the vote and removes the keyboard
										for that user, while still showing the keyboard with poll options to users
										who haven't voted yet.

----------------------------------------------------------------------------------------------------------------------

type ReplyMarkup

type ReplyMarkup interface {
	// contains filtered or unexported methods
}

ReplyMarkup represent one of: - InlineKeyboardMarkup - ReplyKeyboardMarkup - ReplyKeyboardRemove - ForceReply

type ResponseParameters

type ResponseParameters struct {
	MigrateToChatID ChatID `json:"migrate_to_chat_id,omitempty"`
	RetryAfter      int32  `json:"retry_after,omitempty"`
}

ResponseParameters contains information about why a request was unsuccessful. ----------------------------------------------------------------------------------------------------------------------

Field				Type		Description

----------------------------------------------------------------------------------------------------------------------

migrate_to_chat_id	Integer		Optional. The group has been migrated to a supergroup with the specified identifier.
								This number may be greater than 32 bits and some programming languages may have
								difficulty/silent defects in interpreting it. But it is smaller than 52 bits,
								so a signed 64 bit integer or double-precision float type are safe for storing this
								identifier.

----------------------------------------------------------------------------------------------------------------------

retry_after			Integer		Optional. In case of exceeding flood control,
								the number of seconds left to wait before the request can be repeated

----------------------------------------------------------------------------------------------------------------------

type RestrictChatMember

type RestrictChatMember struct {
	SendJSON              `json:"-"`
	ChatID                ChatID   `json:"chat_id"`
	UserID                ChatID   `json:"user_id"`
	UntilDate             UnixTime `json:"until_date,omitempty"`
	CanSendMessages       bool     `json:"can_send_messages,omitempty"`
	CanSendMediaMessages  bool     `json:"can_send_media_messages,omitempty"`
	CanSendOtherMessages  bool     `json:"can_send_other_messages,omitempty"`
	CanAddWebPagePreviews bool     `json:"can_add_web_page_previews,omitempty"`
}

RestrictChatMember use this method to restrict a user in a supergroup. The bot must be an administrator in the supergroup for this to work and must have the appropriate admin rights. Pass True for all boolean parameters to lift restrictions from a user. Returns True on success. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of

the target supergroup (in the format @supergroupusername)

---------------------------------------------------------------------------------------------------------------------- user_id Integer Yes Unique identifier of the target user ---------------------------------------------------------------------------------------------------------------------- until_date Integer Optional Date when restrictions will be lifted for the user,

unix time. If user is restricted for more than
366 days or less than 30 seconds from the current time,
they are considered to be restricted forever

---------------------------------------------------------------------------------------------------------------------- can_send_messages Boolean Optional Pass True, if the user can send text messages,

contacts, locations and venues

---------------------------------------------------------------------------------------------------------------------- can_send_media_messages Boolean Optional Pass True, if the user can send audios, documents,

photos, videos, video notes and voice notes,
implies can_send_messages

---------------------------------------------------------------------------------------------------------------------- can_send_other_messages Boolean Optional Pass True, if the user can send animations, games,

stickers and use inline bots,
implies can_send_media_messages

---------------------------------------------------------------------------------------------------------------------- can_add_web_page_previews Boolean Optional Pass True, if the user may add web page previews

to their messages, implies can_send_media_messages

----------------------------------------------------------------------------------------------------------------------

type Second

type Second int32

Second represent time duration in seconds

type SendAnimation

type SendAnimation struct {
	SendJSON            `json:"-"`
	ChatID              ChatID      `json:"chat_id"`
	Animation           InputFile   `json:"animation"`
	Duration            Second      `json:"duration,omitempty"`
	Width               int32       `json:"width,omitempty"`
	Height              int32       `json:"height,omitempty"`
	Thumb               InputFile   `json:"thumb,omitempty"`
	Caption             string      `json:"caption,omitempty"`
	ParseMode           string      `json:"parse_mode,omitempty"`
	DisableNotification bool        `json:"disable_notification,omitempty"`
	ReplyToMessageID    MessageID   `json:"reply_to_message_id,omitempty"`
	ReplyMarkup         ReplyMarkup `json:"reply_markup,omitempty"`
}

SendAnimation use this method to send animation files (GIF or H.264/MPEG-4 AVC video without sound). On success, the sent Message is returned. Bots can currently send animation files of up to 50 MB in size, this limit may be changed in the future. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of

the target channel (in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- animation InputFile or String Yes Animation to send. Pass a file_id as String to send an

animation that exists on the Telegram servers (recommended),
pass an HTTP URL as a String for Telegram to get an
animation from the Internet, or upload a new animation using
multipart/form-data. More info on Sending Files »

---------------------------------------------------------------------------------------------------------------------- duration Integer Optional Duration of sent animation in seconds ---------------------------------------------------------------------------------------------------------------------- width Integer Optional Animation width ---------------------------------------------------------------------------------------------------------------------- height Integer Optional Animation height ---------------------------------------------------------------------------------------------------------------------- thumb InputFile or String Optional Thumbnail of the file sent; can be ignored if thumbnail

generation for the file is supported server-side.
The thumbnail should be in JPEG format and less
than 200 kB in size. A thumbnail‘s width and height should
not exceed 90. Ignored if the file is not uploaded using
multipart/form-data. Thumbnails can’t be reused and can be
only uploaded as a new file, so you can pass
“attach://<file_attach_name>” if the thumbnail was uploaded
using multipart/form-data under <file_attach_name>.
More info on Sending Files »

---------------------------------------------------------------------------------------------------------------------- caption String Optional Animation caption (may also be used when

resending animation by file_id), 0-1024 characters

---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional Send Markdown or HTML, if you want Telegram apps to show

bold, italic, fixed-width text or
inline URLs in the media caption.

---------------------------------------------------------------------------------------------------------------------- disable_notification Boolean Optional Sends the message silently. Users will receive

a notification with no sound.

---------------------------------------------------------------------------------------------------------------------- reply_to_message_id Integer Optional If the message is a reply, ID of the original message ---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional Additional interface options. A JSON-serialized object

or ReplyKeyboardMarkup				for an inline keyboard, custom reply keyboard, instructions
or ReplyKeyboardRemove				to remove reply keyboard or to force a reply from the user.
or ForceReply

----------------------------------------------------------------------------------------------------------------------

func (*SendAnimation) JSONAble

func (s *SendAnimation) JSONAble() bool

JSONAble

func (*SendAnimation) WriteData

func (s *SendAnimation) WriteData(w *multipart.Writer) error

WriteData

type SendAudio

type SendAudio struct {
	SendJSON            `json:"-"`
	ChatID              ChatID      `json:"chat_id"`
	Audio               InputFile   `json:"audio"`
	Duration            Second      `json:"duration,omitempty"`
	Performer           string      `json:"performer,omitempty"`
	Title               string      `json:"title,omitempty"`
	Thumb               InputFile   `json:"thumb,omitempty"`
	DisableNotification bool        `json:"disable_notification,omitempty"`
	ReplyToMessageID    MessageID   `json:"reply_to_message_id,omitempty"`
	ReplyMarkup         ReplyMarkup `json:"reply_markup,omitempty"`
}

SendAudio use this method to send audio files, if you want Telegram clients to display them in the music player. Your audio must be in the .mp3 format. On success, the sent Message is returned. Bots can currently send audio files of up to 50 MB in size, this limit may be changed in the future. For sending voice messages, use the sendVoice method instead. ----------------------------------------------------------------------------------------------------------------------

Parameter				Type					Required	Description

----------------------------------------------------------------------------------------------------------------------

chat_id					Integer or String		Yes			Unique identifier for the target chat or username of
															the target channel (in the format @channelusername)

----------------------------------------------------------------------------------------------------------------------

audio					InputFile or String		Yes			Audio file to send. Pass a file_id as String to send
															an audio file that exists on the Telegram
															servers (recommended), pass an HTTP URL as a String
															for Telegram to get an audio file from the Internet,
															or upload a new one using multipart/form-data.
															More info on Sending Files »

----------------------------------------------------------------------------------------------------------------------

caption					String					Optional	Audio caption, 0-1024 characters

----------------------------------------------------------------------------------------------------------------------

parse_mode				String					Optional	Send Markdown or HTML, if you want Telegram apps
															to show bold, italic, fixed-width text or inline URLs
															in the media caption.

----------------------------------------------------------------------------------------------------------------------

duration				Integer					Optional	Duration of the audio in seconds

----------------------------------------------------------------------------------------------------------------------

performer				String					Optional	Performer

----------------------------------------------------------------------------------------------------------------------

title					String					Optional	Track name

----------------------------------------------------------------------------------------------------------------------

thumb					InputFile or String		Optional	Thumbnail of the file sent; can be ignored if thumbnail
															generation for the file is supported server-side.
															The thumbnail should be in JPEG format and less
															than 200 kB in size. A thumbnail‘s width and height
															should not exceed 90. Ignored if the file is not
															uploaded using multipart/form-data. Thumbnails can’t
															be reused and can be only uploaded as a new file,
															so you can pass “attach://<file_attach_name>” if the
															thumbnail was uploaded using multipart/form-data
															under <file_attach_name>. More info on Sending Files »

----------------------------------------------------------------------------------------------------------------------

disable_notification	Boolean					Optional	Sends the message silently. Users will receive
															a notification with no sound.

----------------------------------------------------------------------------------------------------------------------

reply_to_message_id		Integer					Optional	If the message is a reply, ID of the original message

----------------------------------------------------------------------------------------------------------------------

reply_markup			InlineKeyboardMarkup 				Additional interface options. A JSON-serialized object
						or ReplyKeyboardMarkup 				for an inline keyboard, custom reply keyboard,
						or ReplyKeyboardRemove 				instructions to remove reply keyboard or
						or ForceReply			Optional	to force a reply from the user.

----------------------------------------------------------------------------------------------------------------------

func (*SendAudio) JSONAble

func (s *SendAudio) JSONAble() bool

JSONAble

func (*SendAudio) WriteData

func (s *SendAudio) WriteData(w *multipart.Writer) error

WriteData

type SendChatAction

type SendChatAction struct {
	SendJSON `json:"-"`
	ChatID   ChatID `json:"chat_id"`
	Action   string `json:"action"`
}

SendChatAction use this method when you need to tell the user that something is happening on the bot's side. The status is set for 5 seconds or less (when a message arrives from your bot, Telegram clients clear its typing status). Returns True on success. Example: The ImageBot needs some time to process a request and upload the image. Instead of sending a text message along the lines of “Retrieving image, please wait…”, the bot may use sendChatAction with action = upload_photo. The user will see a “sending photo” status for the bot. We only recommend using this method when a response from the bot will take a noticeable amount of time to arrive. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of the target channel

(in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- action String Yes Type of action to broadcast. Choose one, depending on what the user

is about to receive: typing for text messages, upload_photo for photos,
record_video or upload_video for videos, record_audio or upload_audio
for audio files, upload_document for general files, find_location for
location data, record_video_note or upload_video_note for video notes.

----------------------------------------------------------------------------------------------------------------------

type SendContact

type SendContact struct {
	SendJSON            `json:"-"`
	ChatID              ChatID      `json:"chat_id"`
	PhoneNumber         string      `json:"phone_number"`
	FirstName           string      `json:"first_name"`
	LastName            string      `json:"last_name,omitempty"`
	VCard               string      `json:"vcard,omitempty"`
	DisableNotification bool        `json:"disable_notification,omitempty"`
	ReplyToMessageID    MessageID   `json:"reply_to_message_id,omitempty"`
	ReplyMarkup         ReplyMarkup `json:"reply_markup,omitempty"`
}

SendContact use this method to send phone contacts. On success, the sent Message is returned. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of

the target channel (in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- phone_number String Yes Contact's phone number ---------------------------------------------------------------------------------------------------------------------- first_name String Yes Contact's first name ---------------------------------------------------------------------------------------------------------------------- last_name String Optional Contact's last name ---------------------------------------------------------------------------------------------------------------------- vcard String Optional Additional data about the contact in the form of

a vCard, 0-2048 bytes

---------------------------------------------------------------------------------------------------------------------- disable_notification Boolean Optional Sends the message silently. Users will receive

a notification with no sound.

---------------------------------------------------------------------------------------------------------------------- reply_to_message_id Integer Optional If the message is a reply, ID of the original message ---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional Additional interface options. A JSON-serialized object

or ReplyKeyboardMarkup 				for an inline keyboard, custom reply keyboard,
or ReplyKeyboardRemove 				instructions to remove keyboard or
or ForceReply						to force a reply from the user.

----------------------------------------------------------------------------------------------------------------------

type SendDocument

type SendDocument struct {
	SendJSON            `json:"-"`
	ChatID              ChatID      `json:"chat_id"`
	Document            InputFile   `json:"document"`
	Thumb               InputFile   `json:"thumb,omitempty"`
	Caption             string      `json:"caption,omitempty"`
	ParseMode           string      `json:"parse_mode,omitempty"`
	DisableNotification bool        `json:"disable_notification,omitempty"`
	ReplyToMessageID    MessageID   `json:"reply_to_message_id,omitempty"`
	ReplyMarkup         ReplyMarkup `json:"reply_markup,omitempty"`
}

SendDocument use this method to send general files. On success, the sent Message is returned. Bots can currently send files of any type of up to 50 MB in size, this limit may be changed in the future. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of

the target channel (in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- document InputFile or String Yes File to send. Pass a file_id as String to send a file that

exists on the Telegram servers (recommended), pass an HTTP
URL as a String for Telegram to get a file from
the Internet, or upload a new one using multipart/form-data.
More info on Sending Files »

---------------------------------------------------------------------------------------------------------------------- thumb InputFile or String Optional Thumbnail of the file sent; can be ignored if thumbnail

generation for the file is supported server-side.
The thumbnail should be in JPEG format and less
than 200 kB in size. A thumbnail‘s width and height should
not exceed 90. Ignored if the file is not uploaded
using multipart/form-data. Thumbnails can’t be reused and
can be only uploaded as a new file, so you can pass
“attach://<file_attach_name>” if the thumbnail was uploaded
using multipart/form-data under <file_attach_name>.
More info on Sending Files »

---------------------------------------------------------------------------------------------------------------------- caption String Optional Document caption (may also be used when resending documents

by file_id), 0-1024 characters

---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional Send Markdown or HTML, if you want Telegram apps

to show bold, italic, fixed-width text or inline URLs
in the media caption.

---------------------------------------------------------------------------------------------------------------------- disable_notification Boolean Optional Sends the message silently. Users will receive

a notification with no sound.

---------------------------------------------------------------------------------------------------------------------- reply_to_message_id Integer Optional If the message is a reply, ID of the original message ---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional Additional interface options. A JSON-serialized object

or ReplyKeyboardMarkup				for an inline keyboard, custom reply keyboard,
or ReplyKeyboardRemove				instructions to remove reply keyboard or
or ForceReply						to force a reply from the user.

----------------------------------------------------------------------------------------------------------------------

func (*SendDocument) JSONAble

func (s *SendDocument) JSONAble() bool

JSONAble

func (*SendDocument) WriteData

func (s *SendDocument) WriteData(w *multipart.Writer) error

WriteData

type SendGame

type SendGame struct {
	SendJSON            `json:"-"`
	ChatID              ChatID      `json:"chat_id"`
	GameShortName       string      `json:"game_short_name"`
	DisableNotification bool        `json:"disable_notification,omitempty"`
	ReplyToMessageID    MessageID   `json:"reply_to_message_id,omitempty"`
	ReplyMarkup         ReplyMarkup `json:"reply_markup,omitempty"`
}

SendGame use this method to send a game. On success, the sent Message is returned. ----------------------------------------------------------------------------------------------------------------------

Parameter				Type					Required	Description

----------------------------------------------------------------------------------------------------------------------

chat_id					Integer					Yes			Unique identifier for the target chat

----------------------------------------------------------------------------------------------------------------------

game_short_name			String					Yes			Short name of the game, serves as the unique identifier
															for the game. Set up your games via Botfather.

----------------------------------------------------------------------------------------------------------------------

disable_notification	Boolean					Optional	Sends the message silently.
															Users will receive a notification with no sound.

----------------------------------------------------------------------------------------------------------------------

reply_to_message_id		Integer					Optional	If the message is a reply, ID of the original message

----------------------------------------------------------------------------------------------------------------------

reply_markup			InlineKeyboardMarkup	Optional	A JSON-serialized object for an inline keyboard.
															If empty, one ‘Play game_title’ button will be shown.
															If not empty, the first button must launch the game.

----------------------------------------------------------------------------------------------------------------------

type SendInvoice

type SendInvoice struct {
	SendJSON                  `json:"-"`
	ChatID                    ChatID          `json:"chat_id"`
	Title                     string          `json:"title"`
	Description               string          `json:"description"`
	Payload                   string          `json:"payload"`
	ProviderToken             string          `json:"provider_token"`
	StartParameter            string          `json:"start_parameter"`
	Currency                  string          `json:"currency"`
	Prices                    []*LabeledPrice `json:"prices"`
	ProviderData              string          `json:"provider_data,omitempty"`
	PhotoURL                  string          `json:"photo_url,omitempty"`
	PhotoSize                 int32           `json:"photo_size,omitempty"`
	PhotoWidth                int32           `json:"photo_width,omitempty"`
	PhotoHeight               int32           `json:"photo_height,omitempty"`
	NeedName                  bool            `json:"need_name,omitempty"`
	NeedPhoneNumber           bool            `json:"need_phone_number,omitempty"`
	NeedEMail                 bool            `json:"need_email,omitempty"`
	NeedShoppingAddress       bool            `json:"need_shopping_address,omitempty"`
	SendPhoneNumberToProvider bool            `json:"send_phone_number_to_provider,omitempty"`
	SendEMailToProvider       bool            `json:"send_email_to_provider,omitempty"`
	IsFlexible                bool            `json:"is_flexible,omitempty"`
	DisableNotification       bool            `json:"disable_notification,omitempty"`
	ReplyToMessageId          MessageID       `json:"reply_to_message_id,omitempty"`
	ReplyMarkup               ReplyMarkup     `json:"reply_markup,omitempty"`
}

SendInvoice use this method to send invoices. On success, the sent Message is returned. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer Yes Unique identifier for the target private chat ---------------------------------------------------------------------------------------------------------------------- title String Yes Product name, 1-32 characters ---------------------------------------------------------------------------------------------------------------------- description String Yes Product description, 1-255 characters ---------------------------------------------------------------------------------------------------------------------- payload String Yes API-defined invoice payload, 1-128 bytes.

This will not be displayed to the user,
use for your internal processes.

---------------------------------------------------------------------------------------------------------------------- provider_token String Yes Payments provider token, obtained via Botfather ---------------------------------------------------------------------------------------------------------------------- start_parameter String Yes Unique deep-linking parameter that can be used

to generate this invoice when used
as a start parameter

---------------------------------------------------------------------------------------------------------------------- currency String Yes Three-letter ISO 4217 currency code,

see more on currencies

---------------------------------------------------------------------------------------------------------------------- prices []LabeledPrice Yes Price breakdown, a list of components

(e.g. product price, tax, discount,
delivery cost, delivery tax, bonus, etc.)

---------------------------------------------------------------------------------------------------------------------- provider_data String Optional JSON-encoded data about the invoice,

which will be shared with the payment provider.
A detailed description of required fields should
be provided by the payment provider.

---------------------------------------------------------------------------------------------------------------------- photo_url String Optional URL of the product photo for the invoice.

Can be a photo of the goods or a marketing image
for a service. People like it better when they
see what they are paying for.

---------------------------------------------------------------------------------------------------------------------- photo_size Integer Optional Photo size ---------------------------------------------------------------------------------------------------------------------- photo_width Integer Optional Photo width ---------------------------------------------------------------------------------------------------------------------- photo_height Integer Optional Photo height ---------------------------------------------------------------------------------------------------------------------- need_name Boolean Optional Pass True, if you require the user's

full name to complete the order

---------------------------------------------------------------------------------------------------------------------- need_phone_number Boolean Optional Pass True, if you require the user's

phone number to complete the order

---------------------------------------------------------------------------------------------------------------------- need_email Boolean Optional Pass True, if you require the user's

email address to complete the order

---------------------------------------------------------------------------------------------------------------------- need_shipping_address Boolean Optional Pass True, if you require the user's

shipping address to complete the order

---------------------------------------------------------------------------------------------------------------------- send_phone_number_to_provider Boolean Optional Pass True, if user's phone number

should be sent to provider

---------------------------------------------------------------------------------------------------------------------- send_email_to_provider Boolean Optional Pass True, if user's email address

should be sent to provider

---------------------------------------------------------------------------------------------------------------------- is_flexible Boolean Optional Pass True, if the final price

depends on the shipping method

---------------------------------------------------------------------------------------------------------------------- disable_notification Boolean Optional Sends the message silently.

Users will receive a notification with no sound.

---------------------------------------------------------------------------------------------------------------------- reply_to_message_id Integer Optional If the message is a reply,

ID of the original message

---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional A JSON-serialized object for an inline keyboard.

If empty, one 'Pay total price' button
will be shown. If not empty, the first button
must be a Pay button.

----------------------------------------------------------------------------------------------------------------------

type SendJSON

type SendJSON interface {
	// contains filtered or unexported methods
}

SendJSON represent API method with HTTP/JSON. Structs with embedding this interface represent API methods.

type SendLocation

type SendLocation struct {
	SendJSON            `json:"-"`
	ChatID              ChatID      `json:"chat_id"`
	Latitude            float32     `json:"latitude"`
	Longitude           float32     `json:"longitude"`
	LivePeriod          Second      `json:"live_period,omitempty"`
	DisableNotification bool        `json:"disable_notification,omitempty"`
	ReplyToMessageID    MessageID   `json:"reply_to_message_id,omitempty"`
	ReplyMarkup         ReplyMarkup `json:"reply_markup,omitempty"`
}

SendLocation use this method to send point on the map. On success, the sent Message is returned. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of

the target channel (in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- latitude Float number Yes Latitude of the location ---------------------------------------------------------------------------------------------------------------------- longitude Float number Yes Longitude of the location ---------------------------------------------------------------------------------------------------------------------- live_period Integer Optional Period in seconds for which the location will be updated

(see Live Locations, should be between 60 and 86400.

---------------------------------------------------------------------------------------------------------------------- disable_notification Boolean Optional Sends the message silently. Users will receive

a notification with no sound.

---------------------------------------------------------------------------------------------------------------------- reply_to_message_id Integer Optional If the message is a reply, ID of the original message ---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional Additional interface options. A JSON-serialized object for

or ReplyKeyboardMarkup				an inline keyboard, custom reply keyboard, instructions
or ReplyKeyboardRemove				to remove reply keyboard or to force a reply from the user.
or ForceReply

----------------------------------------------------------------------------------------------------------------------

type SendMediaGroup

type SendMediaGroup struct {
	SendJSON            `json:"-"`
	ChatID              ChatID      `json:"chat_id"`
	Media               []InputFile `json:"media"`
	DisableNotification bool        `json:"disable_notification,omitempty"`
	ReplyToMessageID    MessageID   `json:"reply_to_message_id,omitempty"`
}

TODO: media group ??? SendMediaGroup use this method to send a group of photos or videos as an album. On success, an array of the sent Messages is returned. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of

the target channel (in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- media []InputMediaPhoto Yes A JSON-serialized array describing photos and videos to be sent,

and InputMediaVideo				must include 2–10 items

---------------------------------------------------------------------------------------------------------------------- disable_notification Boolean Optional Sends the messages silently.

Users will receive a notification with no sound.

---------------------------------------------------------------------------------------------------------------------- reply_to_message_id Integer Optional If the messages are a reply, ID of the original message ----------------------------------------------------------------------------------------------------------------------

type SendMessage

type SendMessage struct {
	SendJSON              `json:"-"`
	ChatID                ChatID      `json:"chat_id"`
	Text                  string      `json:"text"`
	ParseMode             string      `json:"parse_mode,omitempty"`
	DisableWebPagePreview bool        `json:"disable_web_page_preview,omitempty"`
	DisableNotification   bool        `json:"disable_notification,omitempty"`
	ReplyToMessageID      MessageID   `json:"reply_to_message_id,omitempty"`
	ReplyMarkup           ReplyMarkup `json:"reply_markup,omitempty"`
}

SendMessage use this method to send text messages. On success, the sent Message is returned. ----------------------------------------------------------------------------------------------------------------------

Parameter					Type					Required	Description

----------------------------------------------------------------------------------------------------------------------

chat_id						Integer or String		Yes			Unique identifier for the target chat or username
																of the target channel (in the format @channelusername)

----------------------------------------------------------------------------------------------------------------------

text						String					Yes			Text of the message to be sent

----------------------------------------------------------------------------------------------------------------------

parse_mode					String					Optional	Send Markdown or HTML,
																if you want Telegram apps to show bold, italic,
																fixed-width text or inline URLs in your bot's message.

----------------------------------------------------------------------------------------------------------------------

disable_web_page_preview	Boolean					Optional	Disables link previews for links in this message

----------------------------------------------------------------------------------------------------------------------

disable_notification		Boolean					Optional	Sends the message silently.
																Users will receive a notification with no sound.

----------------------------------------------------------------------------------------------------------------------

reply_to_message_id			Integer					Optional	If the message is a reply, ID of the original message

----------------------------------------------------------------------------------------------------------------------

reply_markup				InlineKeyboardMarkup	Optional	Additional interface options.
							or ReplyKeyboardMarkup				A JSON-serialized object for an inline keyboard,
							or ReplyKeyboardRemove				custom reply keyboard, instructions to remove
							or ForceReply						reply keyboard or to force a reply from the user.

----------------------------------------------------------------------------------------------------------------------

type SendPhoto

type SendPhoto struct {
	SendJSON            `json:"-"`
	ChatID              ChatID      `json:"chat_id"`
	Photo               InputFile   `json:"photo"`
	Caption             string      `json:"caption,omitempty"`
	ParseMode           string      `json:"parse_mode,omitempty"`
	DisableNotification bool        `json:"disable_notification,omitempty"`
	ReplyToMessageID    MessageID   `json:"reply_to_message_id,omitempty"`
	ReplyMarkup         ReplyMarkup `json:"reply_markup,omitempty"`
}

SendPhoto use this method to send photos. On success, the sent Message is returned. ----------------------------------------------------------------------------------------------------------------------

Parameter				Type					Required	Description

----------------------------------------------------------------------------------------------------------------------

chat_id					Integer or String		Yes			Unique identifier for the target chat or username
															of the target channel (in the format @channelusername)

----------------------------------------------------------------------------------------------------------------------

photo					InputFile or String		Yes			Photo to send. Pass a file_id as String to send a photo
															that exists on the Telegram servers (recommended),
															pass an HTTP URL as a String for Telegram to get a photo
															from the Internet, or upload a new photo using
															multipart/form-data. More info on Sending Files »

----------------------------------------------------------------------------------------------------------------------

caption					String					Optional	Photo caption (may also be used when resending photos
															by file_id), 0-1024 characters

----------------------------------------------------------------------------------------------------------------------

parse_mode				String					Optional	Send Markdown or HTML, if you want Telegram apps
															to show bold, italic, fixed-width text or inline URLs
															in the media caption.

----------------------------------------------------------------------------------------------------------------------

disable_notification	Boolean					Optional	Sends the message silently. Users will
															receive a notification with no sound.

----------------------------------------------------------------------------------------------------------------------

reply_to_message_id		Integer					Optional	If the message is a reply, ID of the original message

----------------------------------------------------------------------------------------------------------------------

reply_markup			InlineKeyboardMarkup	Optional	Additional interface options. A JSON-serialized object
						or ReplyKeyboardMarkup				for an inline keyboard, custom reply keyboard,
						or ReplyKeyboardRemove				instructions to remove reply keyboard or
						or ForceReply						to force a reply from the user.

----------------------------------------------------------------------------------------------------------------------

func (*SendPhoto) JSONAble

func (s *SendPhoto) JSONAble() bool

JSONAble

func (*SendPhoto) WriteData

func (s *SendPhoto) WriteData(w *multipart.Writer) error

WriteData

type SendSticker

type SendSticker struct {
	SendJSON            `json:"-"`
	ChatID              ChatID      `json:"chat_id"`
	Sticker             InputFile   `json:"sticker"`
	DisableNotification bool        `json:"disable_notification,omitempty"`
	ReplyToMessageID    MessageID   `json:"reply_to_message_id,omitempty"`
	ReplyMarkup         ReplyMarkup `json:"reply_markup,omitempty"`
}

SendSticker use this method to send .webp stickers. On success, the sent Message is returned. ----------------------------------------------------------------------------------------------------------------------

Parameter				Type					Required	Description

----------------------------------------------------------------------------------------------------------------------

chat_id					Integer or String		Yes			Unique identifier for the target chat or username
															of the target channel (in the format @channelusername)

----------------------------------------------------------------------------------------------------------------------

sticker					InputFile or String		Yes			Sticker to send. Pass a file_id as String to send
															a file that exists on the Telegram servers (recommended),
															pass an HTTP URL as a String for Telegram to get a .webp
															file from the Internet, or upload a new one using
															multipart/form-data. More info on Sending Files »

----------------------------------------------------------------------------------------------------------------------

disable_notification	Boolean					Optional	Sends the message silently. Users will receive
															a notification with no sound.

----------------------------------------------------------------------------------------------------------------------

reply_to_message_id		Integer					Optional	If the message is a reply, ID of the original message

----------------------------------------------------------------------------------------------------------------------

reply_markup			InlineKeyboardMarkup 	Optional	Additional interface options.
						or ReplyKeyboardMarkup				A JSON-serialized object for an inline keyboard,
						or ReplyKeyboardRemove				custom reply keyboard, instructions to remove reply
						or ForceReply						keyboard or to force a reply from the user.

----------------------------------------------------------------------------------------------------------------------

func (*SendSticker) JSONAble

func (s *SendSticker) JSONAble() bool

JSONAble

func (*SendSticker) WriteData

func (s *SendSticker) WriteData(w *multipart.Writer) error

WriteData

type SendVenue

type SendVenue struct {
	SendJSON            `json:"-"`
	ChatID              ChatID      `json:"chat_id"`
	Latitude            float32     `json:"latitude"`
	Longitude           float32     `json:"longitude"`
	Title               string      `json:"title"`
	Address             string      `json:"address"`
	FoursquareID        string      `json:"foursquare_id,omitempty"`
	FoursquareType      string      `json:"foursquare_type,omitempty"`
	DisableNotification bool        `json:"disable_notification,omitempty"`
	ReplyToMessageID    MessageID   `json:"reply_to_message_id,omitempty"`
	ReplyMarkup         ReplyMarkup `json:"reply_markup,omitempty"`
}

SendVenue use this method to send information about a venue. On success, the sent Message is returned. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of

the target channel (in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- latitude Float number Yes Latitude of the venue ---------------------------------------------------------------------------------------------------------------------- longitude Float number Yes Longitude of the venue ---------------------------------------------------------------------------------------------------------------------- title String Yes Name of the venue ---------------------------------------------------------------------------------------------------------------------- address String Yes Address of the venue ---------------------------------------------------------------------------------------------------------------------- foursquare_id String Optional Foursquare identifier of the venue ---------------------------------------------------------------------------------------------------------------------- foursquare_type String Optional Foursquare type of the venue, if known. (For example,

“arts_entertainment/default”, “arts_entertainment/aquarium”
or “food/icecream”.)

---------------------------------------------------------------------------------------------------------------------- disable_notification Boolean Optional Sends the message silently.

Users will receive a notification with no sound.

---------------------------------------------------------------------------------------------------------------------- reply_to_message_id Integer Optional If the message is a reply, ID of the original message ---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional Additional interface options. A JSON-serialized object for

or ReplyKeyboardMarkup 				an inline keyboard, custom reply keyboard, instructions
or ReplyKeyboardRemove 				to remove reply keyboard or to force a reply from the user.
or ForceReply

----------------------------------------------------------------------------------------------------------------------

type SendVideo

type SendVideo struct {
	SendJSON            `json:"-"`
	ChatID              ChatID      `json:"chat_id"`
	Video               InputFile   `json:"video"`
	Duration            Second      `json:"duration,omitempty"`
	Width               int32       `json:"width,omitempty"`
	Height              int32       `json:"height,omitempty"`
	Thumb               InputFile   `json:"thumb,omitempty"`
	Caption             string      `json:"caption,omitempty"`
	ParseMode           string      `json:"parse_mode,omitempty"`
	SupportsStreaming   bool        `json:"supports_streaming,omitempty"`
	DisableNotification bool        `json:"disable_notification,omitempty"`
	ReplyToMessageID    MessageID   `json:"reply_to_message_id,omitempty"`
	ReplyMarkup         ReplyMarkup `json:"reply_markup,omitempty"`
}

SendVideo use this method to send video files, Telegram clients support mp4 videos (other formats may be sent as Document). On success, the sent Message is returned. Bots can currently send video files of up to 50 MB in size, this limit may be changed in the future. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of

the target channel (in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- video InputFile or String Yes Video to send. Pass a file_id as String to send a video that

exists on the Telegram servers (recommended),
pass an HTTP URL as a String for Telegram to get a video
from the Internet, or upload a new video using
multipart/form-data. More info on Sending Files »

---------------------------------------------------------------------------------------------------------------------- duration Integer Optional Duration of sent video in seconds ---------------------------------------------------------------------------------------------------------------------- width Integer Optional Video width ---------------------------------------------------------------------------------------------------------------------- height Integer Optional Video height ---------------------------------------------------------------------------------------------------------------------- thumb InputFile or String Optional Thumbnail of the file sent; can be ignored if thumbnail

generation for the file is supported server-side.
The thumbnail should be in JPEG format and less
than 200 kB in size. A thumbnail‘s width and height should
not exceed 90. Ignored if the file is not uploaded using
multipart/form-data. Thumbnails can’t be reused and can be
only uploaded as a new file, so you can pass
“attach://<file_attach_name>” if the thumbnail was uploaded
using multipart/form-data under <file_attach_name>.
More info on Sending Files »

---------------------------------------------------------------------------------------------------------------------- caption String Optional Video caption (may also be used when resending videos

by file_id), 0-1024 characters

---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional Send Markdown or HTML, if you want Telegram apps

to show bold, italic, fixed-width text or inline URLs
in the media caption.

---------------------------------------------------------------------------------------------------------------------- supports_streaming Boolean Optional Pass True, if the uploaded video is suitable for streaming ---------------------------------------------------------------------------------------------------------------------- disable_notification Boolean Optional Sends the message silently.

Users will receive a notification with no sound.

---------------------------------------------------------------------------------------------------------------------- reply_to_message_id Integer Optional If the message is a reply, ID of the original message ---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional Additional interface options. A JSON-serialized object

or ReplyKeyboardMarkup 				for an inline keyboard, custom reply keyboard,
or ReplyKeyboardRemove 				instructions to remove reply keyboard
or ForceReply						or to force a reply from the user.

----------------------------------------------------------------------------------------------------------------------

func (*SendVideo) JSONAble

func (s *SendVideo) JSONAble() bool

JSONAble

func (*SendVideo) WriteData

func (s *SendVideo) WriteData(w *multipart.Writer) error

WriteData

type SendVideoNote

type SendVideoNote struct {
	SendJSON            `json:"-"`
	ChatID              ChatID      `json:"chat_id"`
	VideoNote           InputFile   `json:"video_note"`
	Duration            Second      `json:"duration,omitempty"`
	Length              int32       `json:"length,omitempty"`
	Thumb               InputFile   `json:"thumb,omitempty"`
	DisableNotification bool        `json:"disable_notification,omitempty"`
	ReplyToMessageID    MessageID   `json:"reply_to_message_id,omitempty"`
	ReplyMarkup         ReplyMarkup `json:"reply_markup,omitempty"`
}

SendVideoNote as of v.4.0, Telegram clients support rounded square mp4 videos of up to 1 minute long. Use this method to send video messages. On success, the sent Message is returned. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username

of the target channel (in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- video_note InputFile or String Yes Video note to send. Pass a file_id as String to send a video

note that exists on the Telegram servers (recommended)
or upload a new video using multipart/form-data.
More info on Sending Files ». Sending video notes by a URL
is currently unsupported

---------------------------------------------------------------------------------------------------------------------- duration Integer Optional Duration of sent video in seconds ---------------------------------------------------------------------------------------------------------------------- length Integer Optional Video width and height, i.e. diameter of the video message ---------------------------------------------------------------------------------------------------------------------- thumb InputFile or String Optional Thumbnail of the file sent; can be ignored if thumbnail

generation for the file is supported server-side.
The thumbnail should be in JPEG format and less than
200 kB in size. A thumbnail‘s width and height should
not exceed 90. Ignored if the file is not uploaded using
multipart/form-data. Thumbnails can’t be reused and can be
only uploaded as a new file, so you can pass
“attach://<file_attach_name>” if the thumbnail was uploaded
using multipart/form-data under <file_attach_name>.
More info on Sending Files »

---------------------------------------------------------------------------------------------------------------------- disable_notification Boolean Optional Sends the message silently.

Users will receive a notification with no sound.

---------------------------------------------------------------------------------------------------------------------- reply_to_message_id Integer Optional If the message is a reply, ID of the original message ---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional Additional interface options.

or ReplyKeyboardMarkup				A JSON-serialized object for an inline keyboard,
or ReplyKeyboardRemove				custom reply keyboard, instructions to remove reply keyboard
or ForceReply						or to force a reply from the user.

----------------------------------------------------------------------------------------------------------------------

func (*SendVideoNote) JSONAble

func (s *SendVideoNote) JSONAble() bool

JSONAble

func (*SendVideoNote) WriteData

func (s *SendVideoNote) WriteData(w *multipart.Writer) error

WriteData

type SendVoice

type SendVoice struct {
	SendJSON            `json:"-"`
	ChatID              ChatID      `json:"chat_id"`
	Voice               InputFile   `json:"voice"`
	Caption             string      `json:"caption,omitempty"`
	ParseMode           string      `json:"parse_mode,omitempty"`
	Duration            Second      `json:"duration,omitempty"`
	DisableNotification bool        `json:"disable_notification,omitempty"`
	ReplyToMessageID    MessageID   `json:"reply_to_message_id,omitempty"`
	ReplyMarkup         ReplyMarkup `json:"reply_markup,omitempty"`
}

SendVoice use this method to send audio files, if you want Telegram clients to display the file as a playable voice message. For this to work, your audio must be in an .ogg file encoded with OPUS (other formats may be sent as Audio or Document). On success, the sent Message is returned. Bots can currently send voice messages of up to 50 MB in size, this limit may be changed in the future. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of

the target channel (in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- voice InputFile or String Yes Audio file to send. Pass a file_id as String to send a file

that exists on the Telegram servers (recommended),
pass an HTTP URL as a String for Telegram to get a file from
the Internet, or upload a new one using multipart/form-data.
More info on Sending Files »

---------------------------------------------------------------------------------------------------------------------- caption String Optional Voice message caption, 0-1024 characters ---------------------------------------------------------------------------------------------------------------------- parse_mode String Optional Send Markdown or HTML, if you want Telegram apps to show bold,

italic, fixed-width text or inline URLs in the media caption.

---------------------------------------------------------------------------------------------------------------------- duration Integer Optional Duration of the voice message in seconds ---------------------------------------------------------------------------------------------------------------------- disable_notification Boolean Optional Sends the message silently.

Users will receive a notification with no sound.

---------------------------------------------------------------------------------------------------------------------- reply_to_message_id Integer Optional If the message is a reply, ID of the original message ---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional Additional interface options.

or ReplyKeyboardMarkup				A JSON-serialized object for an inline keyboard,
or ReplyKeyboardRemove				custom reply keyboard, instructions
or ForceReply						to remove reply keyboard or to force a reply from the user.

----------------------------------------------------------------------------------------------------------------------

func (*SendVoice) JSONAble

func (s *SendVoice) JSONAble() bool

JSONAble

func (*SendVoice) WriteData

func (s *SendVoice) WriteData(w *multipart.Writer) error

WriteData

type SetChatDescription

type SetChatDescription struct {
	SendJSON    `json:"-"`
	ChatID      ChatID `json:"chat_id"`
	Description string `json:"description"`
}

SetChatDescription use this method to change the description of a supergroup or a channel. The bot must be an administrator in the chat for this to work and must have the appropriate admin rights. Returns True on success. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of the target

channel (in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- description String Optional New chat description, 0-255 characters ----------------------------------------------------------------------------------------------------------------------

type SetChatPhoto

type SetChatPhoto struct {
	SendJSON `json:"-"`
	ChatID   ChatID    `json:"chat_id"`
	Photo    InputFile `json:"photo"`
}

SetChatPhoto use this method to set a new profile photo for the chat. Photos can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate admin rights. Returns True on success. Note: In regular groups (non-supergroups), this method will only work if the ‘All Members Are Admins’ setting is off in the target group. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of the target channel

(in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- photo InputFile Yes New chat photo, uploaded using multipart/form-data ----------------------------------------------------------------------------------------------------------------------

func (*SetChatPhoto) JSONAble

func (s *SetChatPhoto) JSONAble() bool

JSONAble

func (*SetChatPhoto) WriteData

func (s *SetChatPhoto) WriteData(w *multipart.Writer) error

WriteData

type SetChatStickerSet

type SetChatStickerSet struct {
	SendJSON `json:"-"`
	ChatID   ChatID `json:"chat_id"`
}

SetChatStickerSet use this method to set a new group sticker set for a supergroup. The bot must be an administrator in the chat for this to work and must have the appropriate admin rights. Use the field can_set_sticker_set optionally returned in getChat requests to check if the bot can use this method. Returns True on success. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of

the target supergroup (in the format @supergroupusername)

---------------------------------------------------------------------------------------------------------------------- sticker_set_name String Yes Name of the sticker set to be set as the group sticker set ----------------------------------------------------------------------------------------------------------------------

type SetChatTitle

type SetChatTitle struct {
	SendJSON `json:"-"`
	ChatID   ChatID `json:"chat_id"`
	Title    string `json:"title"`
}

SetChatTitle use this method to change the title of a chat. Titles can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate admin rights. Returns True on success. Note: In regular groups (non-supergroups), this method will only work if the ‘All Members Are Admins’ setting is off in the target group. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of

the target channel (in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- title String Yes New chat title, 1-255 characters ----------------------------------------------------------------------------------------------------------------------

type SetGameScore

type SetGameScore struct {
	SendJSON           `json:"-"`
	UserID             ChatID    `json:"user_id"`
	Score              int64     `json:"score"`
	Force              bool      `json:"force,omitempty"`
	DisableEditMessage bool      `json:"disable_edit_message,omitempty"`
	ChatID             ChatID    `json:"chat_id,omitempty"`
	MessageID          MessageID `json:"message_id,omitempty"`
	InlineMessageID    string    `json:"inline_message_id,omitempty"`
}

SetGameScore use this method to set the score of the specified user in a game. On success, if the message was sent by the bot, returns the edited Message, otherwise returns True. Returns an error, if the new score is not greater than the user's current score in the chat and force is False. ----------------------------------------------------------------------------------------------------------------------

Parameter				Type		Required	Description

----------------------------------------------------------------------------------------------------------------------

user_id					Integer		Yes			User identifier

----------------------------------------------------------------------------------------------------------------------

score					Integer		Yes			New score, must be non-negative

----------------------------------------------------------------------------------------------------------------------

force					Boolean		Optional	Pass True, if the high score is allowed to decrease.
												This can be useful when fixing mistakes or banning cheaters

----------------------------------------------------------------------------------------------------------------------

disable_edit_message	Boolean		Optional	Pass True, if the game message should not be automatically edited
												to include the current scoreboard

----------------------------------------------------------------------------------------------------------------------

chat_id					Integer		Optional	Required if inline_message_id is not specified.
												Unique identifier for the target chat

----------------------------------------------------------------------------------------------------------------------

message_id				Integer		Optional	Required if inline_message_id is not specified.
												Identifier of the sent message

----------------------------------------------------------------------------------------------------------------------

inline_message_id		String		Optional	Required if chat_id and message_id are not specified.
												Identifier of the inline message

----------------------------------------------------------------------------------------------------------------------

type SetStickerPositionInSet

type SetStickerPositionInSet struct {
	SendJSON `json:"-"`
	Sticker  string `json:"sticker"`
	Position int32  `json:"position"`
}

SetStickerPositionInSet use this method to move a sticker in a set created by the bot to a specific position. Returns True on success. ----------------------------------------------------------------------------------------------------------------------

Parameter	Type	Required	Description

----------------------------------------------------------------------------------------------------------------------

sticker		String	Yes			File identifier of the sticker

----------------------------------------------------------------------------------------------------------------------

position	Integer	Yes			New sticker position in the set, zero-based

----------------------------------------------------------------------------------------------------------------------

type SetWebhook

type SetWebhook struct {
	SendJSON       `json:"-"`
	URL            string    `json:"baseURL"`
	Certificate    InputFile `json:"certificate,omitempty"`
	MaxConnections int32     `json:"max_connections,omitempty"`
	AllowedUpdates []string  `json:"allowed_updates,omitempty"`
}

SetWebhook use this method to specify a baseURL and receive incoming updates via an outgoing webhook. Whenever there is an update for the bot, we will send an HTTPS POST request to the specified baseURL, containing a JSON-serialized Update. In case of an unsuccessful request, we will give up after a reasonable amount of attempts. Returns True on success. If you'd like to make sure that the Webhook request comes from Telegram, we recommend using a secret path in the URL, e.g. https://www.example.com/<token>. Since nobody else knows your bot‘s token, you can be pretty sure it’s us. ---------------------------------------------------------------------------------------------------------------------

Parameter			Type		Required	Description

---------------------------------------------------------------------------------------------------------------------

baseURL					String		Yes			HTTPS baseURL to send updates to.
											Use an empty string to remove webhook integration

---------------------------------------------------------------------------------------------------------------------

certificate			InputFile	Optional	Upload your public key certificate so that the root certificate in use
											can be checked. See our self-signed guide for details.

---------------------------------------------------------------------------------------------------------------------

max_connections		Integer		Optional	Maximum allowed number of simultaneous HTTPS connections to the webhook
											for update delivery, 1-100. Defaults to 40. Use lower values to limit
											the load on your bot‘s server, and higher values to increase your bot’s
											throughput.

---------------------------------------------------------------------------------------------------------------------

allowed_updates		[]String	Optional	List the types of updates you want your bot to receive.
											For example, specify [“message”,“edited_channel_post”,“callback_query”]
											to only receive updates of these types. See Update for a complete list
											of available update types. Specify an empty list to receive all updates
											regardless of type (default). If not specified, the previous setting
											will be used.
											Please note that this parameter doesn't affect updates created before
											the call to the getUpdates, so unwanted updates may be received for
											a short period of time.

---------------------------------------------------------------------------------------------------------------------

func (*SetWebhook) JSONAble

func (s *SetWebhook) JSONAble() bool

JSONAble

func (*SetWebhook) WriteData

func (s *SetWebhook) WriteData(w *multipart.Writer) error

WriteData

type ShippingAddress

type ShippingAddress struct {
	CountryCode string `json:"country_code,omitempty"`
	State       string `json:"state,omitempty"`
	City        string `json:"city,omitempty"`
	StreetLine1 string `json:"street_line1,omitempty"`
	StreetLine2 string `json:"street_line2,omitempty"`
	PostCode    string `json:"post_code,omitempty"`
}

ShippingAddress represents a shipping address. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- country_code String ISO 3166-1 alpha-2 country code ---------------------------------------------------------------------------------------------------------------------- state String State, if applicable ---------------------------------------------------------------------------------------------------------------------- city String City ---------------------------------------------------------------------------------------------------------------------- street_line1 String First line for the address ---------------------------------------------------------------------------------------------------------------------- street_line2 String Second line for the address ---------------------------------------------------------------------------------------------------------------------- post_code String Address post code ----------------------------------------------------------------------------------------------------------------------

type ShippingOption

type ShippingOption struct {
	ID     string          `json:"id,omitempty"`
	Title  string          `json:"title,omitempty"`
	Prices []*LabeledPrice `json:"prices,omitempty"`
}

ShippingOption represents one shipping option. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- id String Shipping option identifier ---------------------------------------------------------------------------------------------------------------------- title String Option title ---------------------------------------------------------------------------------------------------------------------- prices []LabeledPrice List of price portions ----------------------------------------------------------------------------------------------------------------------

type ShippingQuery

type ShippingQuery struct {
	ID              string           `json:"id,omitempty"`
	From            *User            `json:"from,omitempty"`
	InvoicePayload  string           `json:"invoice_payload,omitempty"`
	ShippingAddress *ShippingAddress `json:"shipping_address,omitempty"`
}

ShippingQuery this object contains information about an incoming shipping query. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- id String Unique query identifier ---------------------------------------------------------------------------------------------------------------------- from User User who sent the query ---------------------------------------------------------------------------------------------------------------------- invoice_payload String API specified invoice payload ---------------------------------------------------------------------------------------------------------------------- shipping_address ShippingAddress User specified shipping address ----------------------------------------------------------------------------------------------------------------------

type Sticker

type Sticker struct {
	FileID       FileID        `json:"file_id,omitempty"`
	Width        int32         `json:"width,omitempty"`
	Height       int32         `json:"height,omitempty"`
	Thumb        *PhotoSize    `json:"thumb,omitempty"`
	Emoji        string        `json:"emoji,omitempty"`
	SetName      string        `json:"set_name,omitempty"`
	MaskPosition *MaskPosition `json:"mask_position,omitempty"`
	FileSize     int64         `json:"file_size,omitempty"`
}

Sticker represents a sticker. ----------------------------------------------------------------------------------------------------------------------

Field			Type			Description

----------------------------------------------------------------------------------------------------------------------

file_id			String			Unique identifier for this file

----------------------------------------------------------------------------------------------------------------------

width			Integer			Sticker width

----------------------------------------------------------------------------------------------------------------------

height			Integer			Sticker height

----------------------------------------------------------------------------------------------------------------------

thumb			PhotoSize		Optional. Sticker thumbnail in the .webp or .jpg format

----------------------------------------------------------------------------------------------------------------------

emoji			String			Optional. Emoji associated with the sticker

----------------------------------------------------------------------------------------------------------------------

set_name		String			Optional. Name of the sticker set to which the sticker belongs

----------------------------------------------------------------------------------------------------------------------

mask_position	MaskPosition	Optional. For mask stickers, the position where the mask should be placed

----------------------------------------------------------------------------------------------------------------------

file_size		Integer			Optional. File size

----------------------------------------------------------------------------------------------------------------------

type StickerSet

type StickerSet struct {
	Name         string     `json:"name,omitempty"`
	Title        string     `json:"title,omitempty"`
	ContainsMask bool       `json:"contains_mask,omitempty"`
	Stickers     []*Sticker `json:"stickers,omitempty"`
}

StickerSet this object represents a sticker set. ----------------------------------------------------------------------------------------------------------------------

Field			Type		Description

----------------------------------------------------------------------------------------------------------------------

name			String		Sticker set name

----------------------------------------------------------------------------------------------------------------------

title			String		Sticker set title

----------------------------------------------------------------------------------------------------------------------

contains_masks	Boolean		True, if the sticker set contains masks

----------------------------------------------------------------------------------------------------------------------

stickers		[]Sticker	List of all set stickers

----------------------------------------------------------------------------------------------------------------------

type StopMessageLiveLocation

type StopMessageLiveLocation struct {
	SendJSON        `json:"-"`
	ChatID          ChatID                `json:"chat_id,omitempty"`
	MessageID       MessageID             `json:"message_id,omitempty"`
	InlineMessageID string                `json:"inline_message_id,omitempty"`
	ReplyMarkup     *InlineKeyboardMarkup `json:"reply_markup,omitempty"`
}

StopMessageLiveLocation use this method to stop updating a live location message sent by the bot or via the bot (for inline bots) before live_period expires. On success, if the message was sent by the bot, the sent Message is returned, otherwise True is returned. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Optional Required if inline_message_id is not specified.

Unique identifier for the target chat or username of
the target channel (in the format @channelusername)

---------------------------------------------------------------------------------------------------------------------- message_id Integer Optional Required if inline_message_id is not specified.

Identifier of the sent message

---------------------------------------------------------------------------------------------------------------------- inline_message_id String Optional Required if chat_id and message_id are not specified.

Identifier of the inline message

---------------------------------------------------------------------------------------------------------------------- reply_markup InlineKeyboardMarkup Optional A JSON-serialized object for a new inline keyboard. ----------------------------------------------------------------------------------------------------------------------

type SuccessfulPayment

type SuccessfulPayment struct {
	Currency                string     `json:"currency,omitempty"`
	TotalAmount             Amount     `json:"total_amount,omitempty"`
	InvoicePayload          string     `json:"invoice_payload,omitempty"`
	ShippingOptionID        string     `json:"shipping_option_id,omitempty"`
	OrderInfo               *OrderInfo `json:"order_info,omitempty"`
	TelegramPaymentChargeID string     `json:"telegram_payment_charge_id,omitempty"`
	ProviderPaymentChargeID string     `json:"provider_payment_charge_id,omitempty"`
}

SuccessfulPayment this object contains basic information about a successful payment. ---------------------------------------------------------------------------------------------------------------------- Field Type Description ---------------------------------------------------------------------------------------------------------------------- currency String Three-letter ISO 4217 currency code ---------------------------------------------------------------------------------------------------------------------- total_amount Integer Total price in the smallest units of the currency

(integer, not float/double).
For example, for a price of US$ 1.45 pass amount = 145.
See the exp parameter in currencies.json,
it shows the number of digits past the decimal point for each currency
(2 for the majority of currencies).

---------------------------------------------------------------------------------------------------------------------- invoice_payload String API specified invoice payload ---------------------------------------------------------------------------------------------------------------------- shipping_option_id String Optional. Identifier of the shipping option chosen by the user ---------------------------------------------------------------------------------------------------------------------- order_info OrderInfo Optional. Order info provided by the user ---------------------------------------------------------------------------------------------------------------------- telegram_payment_charge_id String Telegram payment identifier ---------------------------------------------------------------------------------------------------------------------- provider_payment_charge_id String Provider payment identifier ----------------------------------------------------------------------------------------------------------------------

type UnbanChatMember

type UnbanChatMember struct {
	SendJSON `json:"-"`
	ChatID   ChatID `json:"chat_id"`
	UserID   ChatID `json:"user_id"`
}

UnbanChatMember use this method to unban a previously kicked user in a supergroup or channel. The user will not return to the group or channel automatically, but will be able to join via link, etc. The bot must be an administrator for this to work. Returns True on success. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target group or username of

the target supergroup or channel (in the format @username)

---------------------------------------------------------------------------------------------------------------------- user_id Integer Yes Unique identifier of the target user ----------------------------------------------------------------------------------------------------------------------

type UnixTime

type UnixTime int64

UnixTime represent unix timestamp

type UnpinChatMessage

type UnpinChatMessage struct {
	SendJSON `json:"-"`
	ChatID   ChatID `json:"chat_id"`
}

UnpinChatMessage use this method to unpin a message in a supergroup or a channel. The bot must be an administrator in the chat for this to work and must have the ‘can_pin_messages’ admin right in the supergroup or ‘can_edit_messages’ admin right in the channel. Returns True on success. ---------------------------------------------------------------------------------------------------------------------- Parameter Type Required Description ---------------------------------------------------------------------------------------------------------------------- chat_id Integer or String Yes Unique identifier for the target chat or username of

the target channel (in the format @channelusername)

----------------------------------------------------------------------------------------------------------------------

type Update

type Update struct {
	ID                 UpdateID            `json:"update_id,omitempty"`
	Message            *Message            `json:"message,omitempty"`
	EditedMessage      *Message            `json:"edited_message,omitempty"`
	ChannelPost        *Message            `json:"channel_post,omitempty"`
	EditedChannelPost  *Message            `json:"edited_channel_post,omitempty"`
	InlineQuery        *InlineQuery        `json:"inline_query,omitempty"`
	ChosenInlineResult *ChosenInlineResult `json:"chosen_inline_result,omitempty"`
	CallbackQuery      *CallbackQuery      `json:"callback_query,omitempty"`
	ShippingQuery      *ShippingQuery      `json:"shipping_query,omitempty"`
	PreCheckoutQuery   *PreCheckoutQuery   `json:"pre_checkout_query,omitempty"`
}

Update represents an incoming update. At most one of the optional parameters can be present in any given update. ----------------------------------------------------------------------------------------------------------------------

Field					Type				Description

----------------------------------------------------------------------------------------------------------------------

update_id				Integer				The update‘s unique identifier. Update identifiers start from a certain
											positive number and increase sequentially. This ID becomes especially
											handy if you’re using Webhooks, since it allows you to ignore repeated
											updates or to restore the correct update sequence, should they get
											out of order. If there are no new updates for at least a week, then
											identifier of the next update will be chosen
											randomly instead of sequentially.

----------------------------------------------------------------------------------------------------------------------

message					Message				Optional. New incoming message of any kind — text, photo, sticker, etc.

----------------------------------------------------------------------------------------------------------------------

edited_message			Message				Optional. New version of a message.

----------------------------------------------------------------------------------------------------------------------

channel_post			Message				Optional. New incoming channel post of any kind — text, photo...

----------------------------------------------------------------------------------------------------------------------

edited_channel_post		Message				Optional. New version of a channel post.

----------------------------------------------------------------------------------------------------------------------

inline_query			InlineQuery			Optional. New incoming inline query

----------------------------------------------------------------------------------------------------------------------

chosen_inline_result	ChosenInlineResult	Optional. The result of an inline query that was chosen by a user and
											sent to their chat partner. Please see our documentation on the feedback
											collecting for details on how to enable these updates for your bot.

----------------------------------------------------------------------------------------------------------------------

callback_query			CallbackQuery		Optional. New incoming callback query

----------------------------------------------------------------------------------------------------------------------

shipping_query			ShippingQuery		Optional. New incoming shipping query.
											Only for invoices with flexible price

----------------------------------------------------------------------------------------------------------------------

pre_checkout_query		PreCheckoutQuery	Optional. New incoming pre-checkout query.
											Contains full information about checkout

----------------------------------------------------------------------------------------------------------------------

type UpdateID

type UpdateID int64

UpdateID represent unique update identity

type UploadMultipart

type UploadMultipart interface {
	JSONAble() bool
	WriteData(w *multipart.Writer) error
}

UploadMultipart represent API method with can be HTTP/Multipart

type UploadStickerFile

type UploadStickerFile struct {
	SendJSON   `json:"-"`
	UserID     ChatID    `json:"user_id"`
	PNGSticker InputFile `json:"png_sticker"`
}

UploadStickerFile use this method to upload a .png file with a sticker for later use in createNewStickerSet and addStickerToSet methods (can be used multiple times). Returns the uploaded File on success. ----------------------------------------------------------------------------------------------------------------------

Parameter	Type		Required	Description

----------------------------------------------------------------------------------------------------------------------

user_id		Integer		Yes			User identifier of sticker file owner

----------------------------------------------------------------------------------------------------------------------

png_sticker	InputFile	Yes			Png image with the sticker, must be up to 512 kilobytes in size, dimensions
									must not exceed 512px, and either width or height must be exactly 512px.
									More info on Sending Files »

----------------------------------------------------------------------------------------------------------------------

func (*UploadStickerFile) JSONAble

func (s *UploadStickerFile) JSONAble() bool

JSONAble

func (*UploadStickerFile) WriteData

func (s *UploadStickerFile) WriteData(w *multipart.Writer) error

WriteData

type UploadingFile

type UploadingFile interface {
	io.Reader
	Name() string
}

UploadingFile represent file that will be uploaded by http/multipart

type User

type User struct {
	ID        ChatID `json:"id,omitempty"`
	IsBot     bool   `json:"is_bot,omitempty"`
	FirstName string `json:"first_name,omitempty"`
	LastName  string `json:"last_name,omitempty"`
	Username  string `json:"username,omitempty"`
	LangCode  string `json:"language_code,omitempty"`
}

User represent telegram user ----------------------------------------------------------------------------------------------------------------------

Field			Type		Description

----------------------------------------------------------------------------------------------------------------------

id				Integer		Unique identifier for this user or bot

----------------------------------------------------------------------------------------------------------------------

is_bot			Boolean		True, if this user is a bot

----------------------------------------------------------------------------------------------------------------------

first_name		String		User‘s or bot’s first name

----------------------------------------------------------------------------------------------------------------------

last_name		String		Optional. User‘s or bot’s last name

----------------------------------------------------------------------------------------------------------------------

username		String		Optional. User‘s or bot’s username

----------------------------------------------------------------------------------------------------------------------

language_code	String		Optional. IETF language tag of the user's language

----------------------------------------------------------------------------------------------------------------------

type UserProfilePhotos

type UserProfilePhotos struct {
	TotalCount int32          `json:"total_count,omitempty"`
	Photos     [][]*PhotoSize `json:"photos,omitempty"`
}

UserProfilePhotos represent a user's profile pictures. ----------------------------------------------------------------------------------------------------------------------

Field			Type			Description

----------------------------------------------------------------------------------------------------------------------

total_count		Integer			Total number of profile pictures the target user has

----------------------------------------------------------------------------------------------------------------------

photos			[][]PhotoSize	Requested profile pictures (in up to 4 sizes each)

----------------------------------------------------------------------------------------------------------------------

type Venue

type Venue struct {
	Location       *Location `json:"location,omitempty"`
	Title          string    `json:"title,omitempty"`
	Address        string    `json:"address,omitempty"`
	FoursquareID   string    `json:"foursquare_id,omitempty"`
	FoursquareType string    `json:"foursquare_type,omitempty"`
}

Venue represents a venue. ----------------------------------------------------------------------------------------------------------------------

Field			Type		Description

----------------------------------------------------------------------------------------------------------------------

location		Location	Venue location

----------------------------------------------------------------------------------------------------------------------

title			String		Name of the venue

----------------------------------------------------------------------------------------------------------------------

address			String		Address of the venue

----------------------------------------------------------------------------------------------------------------------

foursquare_id	String		Optional. Foursquare identifier of the venue

----------------------------------------------------------------------------------------------------------------------

foursquare_type	String		Optional. Foursquare type of the venue. (For example,
							“arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.)

----------------------------------------------------------------------------------------------------------------------

type Video

type Video struct {
	FileID   FileID     `json:"file_id,omitempty"`
	Width    int32      `json:"width,omitempty"`
	Height   int32      `json:"height,omitempty"`
	Duration Second     `json:"duration,omitempty"`
	Thumb    *PhotoSize `json:"thumb,omitempty"`
	MimeType string     `json:"mime_type,omitempty"`
	FileSize int64      `json:"file_size,omitempty"`
}

Video represents a video file. ----------------------------------------------------------------------------------------------------------------------

Field		Type		Description

----------------------------------------------------------------------------------------------------------------------

file_id		String		Unique identifier for this file

----------------------------------------------------------------------------------------------------------------------

width		Integer		Video width as defined by sender

----------------------------------------------------------------------------------------------------------------------

height		Integer		Video height as defined by sender

----------------------------------------------------------------------------------------------------------------------

duration	Integer		Duration of the video in seconds as defined by sender

----------------------------------------------------------------------------------------------------------------------

thumb		PhotoSize	Optional. Video thumbnail

----------------------------------------------------------------------------------------------------------------------

mime_type	String		Optional. Mime type of a file as defined by sender

----------------------------------------------------------------------------------------------------------------------

file_size	Integer		Optional. File size

----------------------------------------------------------------------------------------------------------------------

type VideoNote

type VideoNote struct {
	FileID   FileID     `json:"file_id,omitempty"`
	Length   int32      `json:"length,omitempty"`
	Duration Second     `json:"duration,omitempty"`
	Thumb    *PhotoSize `json:"thumb,omitempty"`
	FileSize int64      `json:"file_size,omitempty"`
}

VideoNote represents a video message (available in Telegram apps as of v.4.0). ----------------------------------------------------------------------------------------------------------------------

Field		Type		Description

----------------------------------------------------------------------------------------------------------------------

file_id		String		Unique identifier for this file

----------------------------------------------------------------------------------------------------------------------

length		Integer		Video width and height (diameter of the video message) as defined by sender

----------------------------------------------------------------------------------------------------------------------

duration	Integer		Duration of the video in seconds as defined by sender

----------------------------------------------------------------------------------------------------------------------

thumb		PhotoSize	Optional. Video thumbnail

----------------------------------------------------------------------------------------------------------------------

file_size	Integer		Optional. File size

----------------------------------------------------------------------------------------------------------------------

type Voice

type Voice struct {
	FileID   FileID `json:"file_id,omitempty"`
	Duration Second `json:"duration,omitempty"`
	MimeType string `json:"mime_type,omitempty"`
	FileSize int64  `json:"file_size,omitempty"`
}

Voice represents a voice note. ----------------------------------------------------------------------------------------------------------------------

Field		Type		Description

----------------------------------------------------------------------------------------------------------------------

file_id		String		Unique identifier for this file

----------------------------------------------------------------------------------------------------------------------

duration	Integer		Duration of the audio in seconds as defined by sender

----------------------------------------------------------------------------------------------------------------------

mime_type	String		Optional. MIME type of the file as defined by sender

----------------------------------------------------------------------------------------------------------------------

file_size	Integer		Optional. File size

----------------------------------------------------------------------------------------------------------------------

type WebhookInfo

type WebhookInfo struct {
	URL                  string   `json:"baseURL,omitempty"`
	HasCustomCertificate bool     `json:"has_custom_certificate,omitempty"`
	PendingUpdateCount   int32    `json:"pending_update_count,omitempty"`
	LastErrorDate        UnixTime `json:"last_error_date,omitempty"`
	LastErrorMessage     string   `json:"last_error_message,omitempty"`
	MaxConnections       int32    `json:"max_connections,omitempty"`
	AllowedUpdates       []string `json:"allowed_updates,omitempty"`
}

WebhookInfo represent information about the current status of a webhook. ---------------------------------------------------------------------------------------------------------------------

Field					Type		Description

---------------------------------------------------------------------------------------------------------------------

baseURL						String		Webhook URL, may be empty if webhook is not set up

---------------------------------------------------------------------------------------------------------------------

has_custom_certificate	Boolean		True, if a custom certificate was provided for webhook certificate checks

---------------------------------------------------------------------------------------------------------------------

pending_update_count	Integer		Number of updates awaiting delivery

---------------------------------------------------------------------------------------------------------------------

last_error_date			Integer		Optional. Unix time for the most recent error that happened when trying
									to deliver an update via webhook

---------------------------------------------------------------------------------------------------------------------

last_error_message		String		Optional. Error message in human-readable format for the most recent error
									that happened when trying to deliver an update via webhook

---------------------------------------------------------------------------------------------------------------------

max_connections			Integer		Optional. Maximum allowed number of simultaneous HTTPS connections to
									the webhook for update delivery

---------------------------------------------------------------------------------------------------------------------

allowed_updates			[]String	Optional. A list of update types the bot is subscribed to.
									Defaults to all update types

---------------------------------------------------------------------------------------------------------------------

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL