Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
Functions ¶
func Sign ¶
Sign signs passed payload using specified key. Function removes such technical parameters as "hash" and "auth_date".
func SignQueryString ¶
SignQueryString signs passed query string.
func Validate ¶
Validate validates passed init data. This method expects initData to be passed in the exact raw format as it could be found in window.Telegram.WebApp.initData. Returns true in case init data is signed correctly, and it is allowed to trust it.
Current code is implementation of algorithmic code described in official docs: https://core.telegram.org/bots/webapps#validating-data-received-via-the-web-app
initData - init data passed from application; token - TWA bot secret token which was used to create init data; expIn - maximum init data lifetime. It is strongly recommended to use this parameter. In case, exp duration is less than or equal to 0, function does not check if parameters are expired.
Types ¶
type Chat ¶
type Chat struct { // Unique identifier for this chat. ID int64 `json:"id"` // Type of chat. Type ChatType `json:"type"` // Title of the chat. Title string `json:"title"` // Optional. URL of the chat’s photo. The photo can be in .jpeg or .svg // formats. Only returned for Web Apps launched from the attachment menu. PhotoURL string `json:"photo_url"` // Optional. Username of the chat. Username string `json:"username"` }
Chat describes chat information: https://docs.telegram-mini-apps.com/launch-parameters/init-data#chat
type InitData ¶
type InitData struct { // The date the initialization data was created. Is a number representing a // Unix timestamp. AuthDateRaw int `json:"auth_date"` // Optional. The number of seconds after which a message can be sent via // the method answerWebAppQuery. // https://core.telegram.org/bots/api#answerwebappquery CanSendAfterRaw int `json:"can_send_after"` // Optional. An object containing information about the chat with the bot in // which the Mini Apps was launched. It is returned only for Mini Apps // opened through the attachment menu. Chat Chat `json:"chat"` // Optional. The type of chat from which the Mini Apps was opened. // Returned only for applications opened by direct link. ChatType ChatType `json:"chat_type"` // Optional. A global identifier indicating the chat from which the Mini // Apps was opened. Returned only for applications opened by direct link. ChatInstance int64 `json:"chat_instance"` // Initialization data signature. // https://core.telegram.org/bots/webapps#validating-data-received-via-the-web-app Hash string `json:"hash"` // Optional. The unique session ID of the Mini App. Used in the process of // sending a message via the method answerWebAppQuery. // https://core.telegram.org/bots/api#answerwebappquery QueryID string `json:"query_id"` // Optional. An object containing data about the chat partner of the current // user in the chat where the bot was launched via the attachment menu. // Returned only for private chats and only for Mini Apps launched via the // attachment menu. Receiver User `json:"receiver"` // Optional. The value of the startattach or startapp query parameter // specified in the link. It is returned only for Mini Apps opened through // the attachment menu. StartParam string `json:"start_param"` // Optional. An object containing information about the current user. User User `json:"user"` }
InitData contains init data. https://docs.telegram-mini-apps.com/launch-parameters/init-data#parameters-list
func (*InitData) CanSendAfter ¶
CanSendAfter returns computed time which depends on CanSendAfterRaw and AuthDate. Originally, CanSendAfterRaw means time in seconds, after which `answerWebAppQuery` method can be called and that's why this value could be computed as time.
type User ¶
type User struct { // Optional. True, if this user added the bot to the attachment menu. AddedToAttachmentMenu bool `json:"added_to_attachment_menu"` // Optional. True, if this user allowed the bot to message them. AllowsWriteToPm bool `json:"allows_write_to_pm"` // First name of the user or bot. FirstName string `json:"first_name"` // A unique identifier for the user or bot. ID int64 `json:"id"` // Optional. True, if this user is a bot. Returned in the `receiver` field // only. IsBot bool `json:"is_bot"` // Optional. True, if this user is a Telegram Premium user. IsPremium bool `json:"is_premium"` // Optional. Last name of the user or bot. LastName string `json:"last_name"` // Optional. Username of the user or bot. Username string `json:"username"` // Optional. IETF language tag of the user's language. Returns in user // field only. // https://en.wikipedia.org/wiki/IETF_language_tag LanguageCode string `json:"language_code"` // Optional. URL of the user’s profile photo. The photo can be in .jpeg or // .svg formats. Only returned for Web Apps launched from the // attachment menu. PhotoURL string `json:"photo_url"` }
User describes user information: https://docs.telegram-mini-apps.com/launch-parameters/init-data#user