1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package initdata
- import (
- jsoniter "github.com/json-iterator/go"
- mhayaLogger "github.com/mhaya/logger"
- "net/url"
- )
- // User describes user information:
- // https://docs.telegram-mini-apps.com/launch-parameters/init-data#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"`
- }
- func GetUserInfo(str string) *User {
- dam, err := url.ParseQuery(str)
- if err != nil {
- mhayaLogger.Warnf("[GetUserInfo] if err. params=%s", str)
- return nil
- }
- var user User
- if d, ok := dam["user"]; ok {
- if len(d) > 0 {
- jsoniter.Unmarshal([]byte(dam["user"][0]), &user)
- }
- }
- return &user
- }
|