vk_api

package module
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2024 License: GPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DeviceIPhone = iota
	DeviceWPhone
	DeviceAndroid
)
View Source
const (
	TypePost         = "post"
	TypeComment      = "comment"
	TypePhoto        = "photo"
	TypeDocument     = "doc"
	TypeAudio        = "audio"
	TypeVideo        = "video"
	TypeNote         = "note"
	TypePhotoComment = "photo_comment"
	TypeVideoComment = "video_comment"
	TypeTopicComment = "topic_comment"
	TypeSitepage     = "sitepage"
)
View Source
const (
	ActivityTypeTyping   = "typing"
	ActivityTypeAudioMsg = "audiomessage"
)
View Source
const (
	PlatformMobile
	PlatformIPhone
	PlatfromIPad
	PlatformAndroid
	PlatformWPhone
	PlatformWindows
	PlatformWeb
)

last seen device

Variables

This section is empty.

Functions

func ArrayToStr

func ArrayToStr(a []int) string

func BoolToInt

func BoolToInt(a bool) int

func GetFilesSizeMB

func GetFilesSizeMB(files []string) (int, error)

func IntToBool

func IntToBool(a int) bool

Types

type APIResponse

type APIResponse struct {
	Response      json.RawMessage `json:"response"`
	ResponseError Error           `json:"error"`
}

APIResponse содержит ответ сервера ВК на API-запросы

type Attachment

type Attachment struct {
	Type    string             `json:"type"`
	Photo   *AttachmentPhoto   `json:"photo"`
	Video   *AttachmentVideo   `json:"video"`
	Audio   *AttachmentAudio   `json:"audio"`
	Doc     *AttachmentDoc     `json:"doc"`
	Sticker *AttachmentSticker `json:"sticker"`
}

type AttachmentAudio

type AttachmentAudio struct {
	Artist     string                   `json:"artist"`
	ID         int                      `json:"id"`
	OwnerID    int                      `json:"owner_id"`
	Title      string                   `json:"title"`
	Duration   int                      `json:"duration"`
	AccessKey  string                   `json:"access_key"`
	IsLicensed bool                     `json:"is_licensed"`
	TrackCode  string                   `json:"track_code"`
	Url        string                   `json:"url"`
	Date       int64                    `json:"date"`
	Album      *AttachmentAudioAlbum    `json:"album"`
	MainArtist []*AttachmentAudioArtist `json:"main_artist"`
}

type AttachmentAudioAlbum

type AttachmentAudioAlbum struct {
	ID        int                        `json:"id"`
	Title     string                     `json:"title"`
	OwnerID   int                        `json:"owner_id"`
	AccessKey string                     `json:"access_key"`
	Thumb     *AttachmentAudioAlbumThumb `json:"thumb"`
}

type AttachmentAudioAlbumThumb

type AttachmentAudioAlbumThumb struct {
	Width    int    `json:"width"`
	Height   int    `json:"height"`
	Photo34  string `json:"photo_34"`
	Photo68  string `json:"photo_68"`
	Photo135 string `json:"photo_135"`
	Photo270 string `json:"photo_270"`
	Photo300 string `json:"photo_300"`
	Photo600 string `json:"photo_600"`
}

type AttachmentAudioArtist

type AttachmentAudioArtist struct {
	Name   string `json:"name"`
	Domain string `json:"domain"`
	ID     string `json:"id"`
}

type AttachmentDoc

type AttachmentDoc struct {
	ID         int    `json:"id"`
	OwnerID    int    `json:"owner_id"`
	Title      string `json:"title"`
	Size       int    `json:"size"`
	Ext        string `json:"ext"`
	Url        string `json:"url"`
	Date       int64  `json:"date"`
	Type       int    `json:"type"`
	IsLicensed int    `json:"is_licensed"` // NOTE(Pedro): There is some inconsistency on VK API, this field can return "true" or zero for false
	AccessKey  string `json:"access_key"`
}

type AttachmentImageInfo

type AttachmentImageInfo struct {
	Type        string `json:"type"`
	Url         string `json:"url"`
	Width       int    `json:"width"`
	Height      int    `json:"height"`
	WithPadding int    `json:"with_padding"`
}

type AttachmentPhoto

type AttachmentPhoto struct {
	ID        int                    `json:"id"`
	AlbumID   int                    `json:"album_id"`
	OwnerID   int                    `json:"owner_id"`
	UserID    int                    `json:"user_id"`
	Sizes     []*AttachmentImageInfo `json:"sizes"`
	Text      string                 `json:"text"`
	Date      int64                  `json:"date"`
	AccessKey string                 `json:"access_key"`
	PostID    int                    `json:"post_id"`
}

type AttachmentSticker

type AttachmentSticker struct {
	ProductID            int                    `json:"product_id"`
	StickerID            int                    `json:"sticker_id"`
	Images               []*AttachmentImageInfo `json:"images"`
	ImagesWithBackground []*AttachmentImageInfo `json:"images_with_background"`
}

type AttachmentVideo

type AttachmentVideo struct {
	AccessKey     string                 `json:"access_key"`
	CanComment    int                    `json:"can_comment"`
	CanEdit       int                    `json:"can_edit"`
	CanLike       int                    `json:"can_like"`
	CanRepost     int                    `json:"can_repost"`
	CanSubscribe  int                    `json:"can_subscribe"`
	CanAddToFaves int                    `json:"can_add_to_faves"`
	CanAdd        int                    `json:"can_add"`
	CanAttachLink int                    `json:"can_attach_link"`
	Comments      int                    `json:"comments"`
	Date          int64                  `json:"date"`
	Description   string                 `json:"description"`
	Duration      int                    `json:"duration"`
	Image         []*AttachmentImageInfo `json:"image"`
	FirstFrame    []*AttachmentImageInfo `json:"first_frame"`
	Width         int                    `json:"width"`
	Height        int                    `json:"height"`
	ID            int                    `json:"id"`
	OwnerID       int                    `json:"owner_id"`
	UserID        int                    `json:"user_id"`
	Title         string                 `json:"title"`
	IsFavorite    bool                   `json:"is_favorite"`
	TrackCode     string                 `json:"track_code"`
	Type          string                 `json:"type"`
	Views         int                    `json:"views"`
	LocalViews    int                    `json:"local_views"`
	Platform      string                 `json:"platform"`
}

type AudioAttachment

type AudioAttachment struct {
	ID        int    `json:"id"`
	OwnerID   int    `json:"owner_id"`
	Artist    string `json:"artist"`
	Title     string `json:"title"`
	Duration  int    `json:"duration"`
	URL       string `json:"url"`
	Performer string `json:"performer"`
}

type BotlLongPollDM

type BotlLongPollDM struct {
	MessageID    int                 `json:"id"`
	Date         int64               `json:"date"`
	PeerID       int64               `json:"peer_id"`
	SendByID     int64               `json:"from_id"`
	Text         string              `json:"text"`
	RandomID     int64               `json:"random_id"`
	Attachments  []MessageAttachment `json:"attachments"`
	Isimportant  bool                `json:"important"`
	FwdMessages  []BotlLongPollDM    `json:"fwd_messages"`
	ReplyMessage *BotlLongPollDM     `json:"reply_message"`
	Payload      string              `json:"payload"`
}

type BotsLongPollEvent

type BotsLongPollEvent struct {
	Type   string             `json:"type"`
	Object BotsLongPollObject `json:"object"`
}

type BotsLongPollObject

type BotsLongPollObject struct {
	// message_*
	Message    BotlLongPollDM `json:"message"`
	ClientInfo interface{}    `json:"client_info"`
	// group_join
	UserId   int64  `json:"user_id"`
	JoinType string `json:"join_type"`
	// wall_post_new
	WallPost
}

type BotsLongPollServer

type BotsLongPollServer struct {
	Key    string `json:"key"`
	Server string `json:"server"`
	TS     string `json:"ts"`
}

type BotsLongPollUpdate

type BotsLongPollUpdate struct {
	Failed  int                 `json:"failed"`
	TS      string              `json:"ts"`
	Updates []BotsLongPollEvent `json:"updates"`
}

type Button

type Button struct {
	Action map[string]string `json:"action"`
	Color  string            `json:"color,omitempty"`
}

type Career

type Career struct {
	GroupID   int    `json:"group_id"`
	Company   string `json:"company"`
	CountryID int    `json:"country_id"`
	CityID    int    `json:"city_id"`
	CityName  string `json:"city_name"`
	From      int    `json:"from"`
	Until     int    `json:"until"`
	Position  string `json:"position"`
}

Career содержит информацию о карьере пользователя. Объект, содержащий следующие поля: group_id (integer) — идентификатор сообщества (если доступно, иначе company); company (string) — название компании (если доступно, иначе group_id); country_id (integer) — идентификатор страны; city_id (integer) — идентификатор города (если доступно, иначе city_name); city_name (string) — название города (если доступно, иначе city_id); from (integer) — год начала работы; until (integer) — год окончания работы; position (string) — должность.

type Comment

type Comment struct {
	Count   int `json:"count"`
	CanPost int `json:"can_post"`
}

type Comments

type Comments struct {
	Count      int             `json:"count"`
	Comments   []*TopicComment `json:"items"`
	Poll       *Poll           `json:"poll"`
	Profiles   []*User         `json:"profiles"`
	RealOffset int             `json:"real_offset"`
}

type Dialog

type Dialog struct {
	Count    int     `json:"count"`
	Messages []*Item `json:"items"`
}

type DialogMessage

type DialogMessage struct {
	MID               int                  `json:"id"`
	Date              int64                `json:"date"`
	Out               int                  `json:"out"`
	UID               int                  `json:"user_id"`
	ReadState         int                  `json:"read_state"`
	Title             string               `json:"title"`
	Body              string               `json:"body"`
	RandomID          int                  `json:"random_id"`
	ChatID            int64                `json:"chat_id"`
	ChatActive        string               `json:"chat_active"`
	PushSettings      *Push                `json:"push_settings"`
	UsersCount        int                  `json:"users_count"`
	AdminID           int                  `json:"admin_id"`
	Photo50           string               `json:"photo_50"`
	Photo100          string               `json:"photo_100"`
	Photo200          string               `json:"photo_200"`
	ForwardedMessages []*ForwardedMessage  `json:"fwd_messages"`
	Attachments       []*MessageAttachment `json:"attachments"`
}

type DocAttachment

type DocAttachment struct {
	ID         int    `json:"id"`
	OwnerID    int    `json:"owner_id"`
	Title      string `json:"title"`
	Size       int    `json:"size"`
	Extenstion string `json:"ext"`
	URL        string `json:"url"`
	Date       int64  `json:"date"`
	Type       int    `json:"type"`
	IsLicensed int    `json:"is_licensed"`
}

type Docs

type Docs struct {
	Count     int              `json:"count"`
	Documents []*DocAttachment `json:"items"`
}

type Error

type Error struct {
	ErrorCode int    `json:"error_code"`
	ErrorMsg  string `json:"error_msg"`
}

Error содержит код ошибки и сообщение об ошибке от сервера ВК

type ForwardedMessage

type ForwardedMessage struct {
	UID               int                  `json:"user_id"`
	Date              int64                `json:"date"`
	Body              string               `json:"body"`
	Attachments       []*MessageAttachment `json:"attachments"`
	ForwardedMessages []*ForwardedMessage  `json:"fwd_messages"`
}

type FriendDeleteResult

type FriendDeleteResult struct {
	Success             int `json:"success"`             // удалось успешно удалить друга;
	Friend_deleted      int `json:"friend_deleted"`      // был удален друг;
	Out_request_deleted int `json:"out_request_deleted"` // отменена исходящая заявка;
	In_request_deleted  int `json:"in_request_deleted"`  // отклонена входящая заявка;
	Suggestion_deleted  int `json:"suggestion_deleted"`  // отклонена рекомендация друга.
}

type Friends

type Friends struct {
	Count int     `json:"count"`
	Users []*User `json:"items"`
}

type FriendsIds

type FriendsIds struct {
	Count   int   `json:"count"`
	UserIds []int `json:"items"`
}

type FriendsRequests

type FriendsRequests struct {
	Count    int        `json:"count"`
	Requests []*Request `json:"items"`
}

type Gift

type Gift struct {
	Count int         `json:"count"`
	Gifts []*GiftItem `json:"items"`
}

type GiftInfo

type GiftInfo struct {
	ID       int    `json:"id"`
	Thumb256 string `json:"thumb_256"`
	Thumb48  string `json:"thumb_48"`
	Thumb96  string `json:"thumb_96"`
}

type GiftItem

type GiftItem struct {
	ID      int       `json:"id"`
	FromID  int       `json:"from_id"`
	Message string    `json:"message"`
	Date    int64     `json:"date"`
	Info    *GiftInfo `json:"gift"`
	Privacy int       `json:"privacy"`
}

type Group

type Group struct {
	ID                int             `json:"id"`
	Name              string          `json:"name"`
	ScreenName        string          `json:"screen_name"`
	Description       string          `json:"description"`
	Activity          string          `json:"activity"`
	Contacts          []*GroupContact `json:"contacts"`
	IsClosed          int             `json:"is_closed"`
	Type              string          `json:"type"`
	IsAdmin           int             `json:"is_admin"`
	IsMember          int             `json:"is_member"`
	MembersCount      int             `json:"members_count"`
	HasPhoto          int             `json:"has_photo"`
	IsMessagesBlocked int             `json:"is_messages_blocked"`
	Photo50           string          `json:"photo_50"`
	Photo100          string          `json:"photo_100"`
	Photo200          string          `json:"photo_200"`
	AgeLimit          int             `json:"age_limits"`
	CanCreateTopic    int             `json:"can_create_topic"`
	CanMessage        int             `json:"can_message"`
	CanPost           int             `json:"can_post"`
	CanSeeAllPosts    int             `json:"can_see_all_posts"`
	City              *UserCity       `json:"city"`
}

type GroupContact

type GroupContact struct {
	UID         int    `json:"user_id"`
	Description string `json:"desc"`
}

type GroupMembers

type GroupMembers struct {
	Count   int     `json:"count"`
	Members []*User `json:"items"`
}

type GroupSearchResult

type GroupSearchResult struct {
	Count  int      `json:"count"`
	Groups []*Group `json:"items"`
}

type HistoryAttachment

type HistoryAttachment struct {
	Attachments []HistoryAttachmentItem `json:"items"`
	NextFrom    string                  `json:"next_from"`
}

type HistoryAttachmentItem

type HistoryAttachmentItem struct {
	MID        int                `json:"message_id"`
	Attachment *MessageAttachment `json:"attachment"`
}

type Item

type Item struct {
	Message *DialogMessage `json:"message"`
	InRead  int            `json:"in_read"`
	OutRead int            `json:"out_read"`
}

type Keyboard

type Keyboard struct {
	OneTime bool       `json:"one_time"`
	Buttons [][]Button `json:"buttons"`
	Inline  bool       `json:"inline"`
}

type LastSeen

type LastSeen struct {
	Time     int64 `json:"time"`
	Platform int   `json:"platform"`
}

LastSeen содержит информацию о последнем посещении пользователя (время и тип устройства). time (integer) — время последнего посещения в формате Unixtime. platform (integer) — тип платформы. Возможные значения: 1 — мобильная версия; 2 — приложение для iPhone; 3 — приложение для iPad; 4 — приложение для Android; 5 — приложение для Windows Phone; 6 — приложение для Windows 10; 7 — полная версия сайта.

type Like

type Like struct {
	Count      int `json:"count"`
	UserLikes  int `json:"user_likes"`
	CanLike    int `json:"can_like"`
	CanPublish int `json:"can_publish"`
}

type LikeUser

type LikeUser struct {
	Type      string `json:"profile"`
	ID        int    `json:"id"`
	FirstName string `json:"first_name"`
	LastName  string `json:"last_name"`
}

type Likes

type Likes struct {
	Count int         `json:"count"`
	Users []*LikeUser `json:"items"`
}

type LinkAttachment

type LinkAttachment struct {
	URL         string `json:"url"`
	Title       string `json:"title"`
	Description string `json:"description"`
	Target      string `json:"target"`
}

type LongPollMessage

type LongPollMessage struct {
	MessageType  string
	MessageID    int
	MessageFlags int
	UserID       int64
	Date         int64
	Title        string
	Body         string
	Attachments  map[string]string
}

type LongPollServer

type LongPollServer struct {
	Key    string `json:"key"`
	Server string `json:"server"`
	TS     int64  `json:"ts"`
}

type LongPollUpdate

type LongPollUpdate struct {
	Failed  int             `json:"failed"`
	TS      int64           `json:"ts"`
	Updates [][]interface{} `json:"updates"`
}

type Message

type Message struct {
	Count    int              `json:"count"`
	Messages []*DialogMessage `json:"items"`
}

type MessageAttachment

type MessageAttachment struct {
	Type     string             `json:"type"`
	Audio    *AudioAttachment   `json:"audio"`
	Video    *VideoAttachment   `json:"video"`
	Photo    *PhotoAttachment   `json:"photo"`
	Document *DocAttachment     `json:"doc"`
	Link     *LinkAttachment    `json:"link"`
	Wall     *WallPost          `json:"wall"`
	Sticker  *StickerAttachment `json:"sticker"`
}

type Military

type Military struct {
	Unit      string `json:"unit"`
	UnitID    int    `json:"unit_id"`
	CountryID int    `json:"country_id"`
	From      int    `json:"from"`
	Until     int    `json:"until"`
}

Military - информация о военной службе пользователя. Объект, содержащий следующие поля: unit (string) — номер части; unit_id (integer) — идентификатор части в базе данных; country_id (integer) — идентификатор страны, в которой находится часть; from (integer) — год начала службы; until (integer) — год окончания службы.

type Mutual

type Mutual struct {
	Count int   `json:"count"`
	Users []int `json:"users"`
}

type OnlineInfo

type OnlineInfo struct {
	Visible  bool  `json:"visible"`
	LastSeen int64 `json:"last_seen"`
}

OnlineInfo содержит информацию о статусе "онлайн" пользователя

type Personal

type Personal struct {
	Political  int    `json:"political"`
	Langs      []int  `json:"langs"`
	Religion   string `json:"religion"`
	InspiredBy string `json:"inspired_by"`
	PeopleMain int    `json:"people_main"`
	LifeMain   int    `json:"life_main"`
	Smoking    int    `json:"smoking"`
	Alcohol    int    `json:"alcohol"`
}

Personal - информация о полях из раздела «Жизненная позиция». political (integer) — политические предпочтения. Возможные значения: 1 — коммунистические; 2 — социалистические; 3 — умеренные; 4 — либеральные; 5 — консервативные; 6 — монархические; 7 — ультраконсервативные; 8 — индифферентные; 9 — либертарианские. langs (array) — языки. religion (string) — мировоззрение. inspired_by (string) — источники вдохновения. people_main (integer) — главное в людях. Возможные значения: 1 — ум и креативность; 2 — доброта и честность; 3 — красота и здоровье; 4 — власть и богатство; 5 — смелость и упорство; 6 — юмор и жизнелюбие. life_main (integer) — главное в жизни. Возможные значения: 1 — семья и дети; 2 — карьера и деньги; 3 — развлечения и отдых; 4 — наука и исследования; 5 — совершенствование мира; 6 — саморазвитие; 7 — красота и искусство; 8 — слава и влияние; smoking (integer) — отношение к курению. Возможные значения: 1 — резко негативное; 2 — негативное; 3 — компромиссное; 4 — нейтральное; 5 — положительное. alcohol (integer) — отношение к алкоголю. Возможные значения: 1 — резко негативное; 2 — негативное; 3 — компромиссное; 4 — нейтральное; 5 — положительное.

type PhotoAttachment

type PhotoAttachment struct {
	ID        int                    `json:"id"`
	AID       int                    `json:"album_id"`
	OwnerID   int                    `json:"owner_id"`
	Photo75   string                 `json:"photo_75"`
	Photo130  string                 `json:"photo_130"`
	Photo604  string                 `json:"photo_604"`
	Photo807  string                 `json:"photo_807"`
	Photo1280 string                 `json:"photo_1280"`
	Photo2560 string                 `json:"photo_2560"`
	Width     int                    `json:"width"`
	Height    int                    `json:"height"`
	Text      string                 `json:"text"`
	Created   int64                  `json:"created"`
	AccessKey string                 `json:"access_key"`
	Sizes     []PhotoAttachmentSizes `json:"sizes"`
}

type PhotoAttachmentSizes

type PhotoAttachmentSizes struct {
	Type   string `json:"type"`
	Url    string `json:"url"`
	Width  int    `json:"width"`
	Height int    `json:"height"`
}

type Poll

type Poll struct {
	ID        int           `json:"id"`
	OwnerID   int           `json:"owner_id"`
	Created   int64         `json:"created"`
	Question  string        `json:"question"`
	Votes     int           `json:"votes"`
	Answers   []*PollAnswer `json:"answers"`
	Anonymous bool          `json:"anonymous"`
	Multiple  bool          `json:"multiple"`
	AnswerIDS []int         `json:"answer_ids"`
	EndDate   int64         `json:"end_date"`
	Closed    bool          `json:"closed"`
	IsBoard   bool          `json:"is_board"`
	CanEdit   bool          `json:"can_edit"`
	CanVote   bool          `json:"can_vote"`
	CanReport bool          `json:"can_report"`
	CanShare  bool          `json:"can_share"`
}

type PollAnswer

type PollAnswer struct {
	ID    int     `json:"id"`
	Text  string  `json:"text"`
	Votes int     `json:"votes"`
	Rate  float64 `json:"rate"`
}

type Push

type Push struct {
	Sound         int   `json:"sound"`
	DisabledUntil int64 `json:"disabled_until"`
}

type Relative

type Relative struct {
	UID  int    `json:"id"`
	Name string `json:"name"`
	Type string `json:"type"`
}

Relative - родственник. Выдается в массиве - списке родсвенников. Объект содержит поля: id (integer) — идентификатор пользователя; name (string) — имя родственника (если родственник не является пользователем ВКонтакте, то предыдущее значение id возвращено не будет); type (string) — тип родственной связи. Возможные значения: child — сын/дочь; sibling — брат/сестра; parent — отец/мать; grandparent — дедушка/бабушка; grandchild — внук/внучка.

type Repost

type Repost struct {
	Count        int `json:"count"`
	UserReposted int `json:"user_reposted"`
}

type Request

type Request struct {
	UserID        int     `json:"user_id"`
	MutualFriends *Mutual `json:"mutual"`
}

type ResolveScreenName

type ResolveScreenName struct {
	Type     string `json:"type"`
	ObjectID int    `json:"object_id"`
}

type School

type School struct {
	SchoolID      int    `json:"id"`
	CountryID     int    `json:"country"`
	CityID        int    `json:"city"`
	Name          string `json:"name"`
	YearFrom      int    `json:"year_from"`
	YearTo        int    `json:"year_to"`
	YearGraduated int    `json:"year_graduated"`
	Class         string `json:"class"`
	Speciality    string `json:"speciality"`
	Type          int    `json:"type"`
	TypeStr       string `json:"type_str"`
}

School - школа. Выдается в массиве - списке школ, в которых учился пользователь. Объект содержит следующие поля: id (string?) — идентификатор школы; country (integer) — идентификатор страны, в которой расположена школа; city (integer) — идентификатор города, в котором расположена школа; name (string) — наименование школы; year_from (integer) — год начала обучения; year_to (integer) — год окончания обучения; year_graduated (integer) — год выпуска; class (string) — буква класса; speciality (string) — специализация; type (integer) — идентификатор типа; type_str (string) — название типа. Возможные значения для пар type-typeStr: 0 — "школа"; 1 — "гимназия"; 2 — "лицей"; 3 — "школа-интернат"; 4 — "школа вечерняя"; 5 — "школа музыкальная"; 6 — "школа спортивная"; 7 — "школа художественная"; 8 — "колледж"; 9 — "профессиональный лицей"; 10 — "техникум"; 11 — "ПТУ"; 12 — "училище"; 13 — "школа искусств".

type ShortLink struct {
	ShortUrl  string `json:"short_url"`
	Accesskey string `json:"access_key"`
	Key       string `json:"key"`
	Url       string `json:"url"`
}

type Source

type Source struct {
	Type string `json:"type"`
}

type StickerAttachment

type StickerAttachment struct {
	ID        int    `json:"id"`
	ProductID int    `json:"product_id"`
	Photo64   string `json:"photo_64"`
	Photo128  string `json:"photo_128"`
	Photo256  string `json:"photo_256"`
	Photo352  string `json:"photo_352"`
	Photo512  string `json:"photo_512"`
	Width     int    `json:"width"`
	Height    int    `json:"height"`
}

type Token

type Token struct {
	AccessToken      string `json:"access_token"`
	ExpiresIn        int    `json:"expires_in"`
	UID              int    `json:"user_id"`
	Error            string `json:"error"`
	ErrorDescription string `json:"error_description"`
	FirstName        string
	LastName         string
	PicSmall         string
	PicMedium        string
	PicBig           string
	Lang             string
}

Token содержит всю авторизационную информацию аккаунта, а также ФИО и фото

type TokenOptions

type TokenOptions struct {
	ServiceToken      bool
	ValidateOnStart   bool
	TokenLanguage     string
	RequestsPerSecond int
}

type Topic

type Topic struct {
	ID           int    `json:"id"`
	Title        string `json:"title"`
	Created      int64  `json:"created"`
	CreatedBy    int    `json:"created_by"`
	Updated      int64  `json:"updated"`
	UpdatedBy    int    `json:"updated_by"`
	IsClosed     int    `json:"is_closed"`
	IsFixed      int    `json:"is_fixed"`
	Comments     int    `json:"comments"`
	FirstComment string `json:"first_comment"`
	LastComment  string `json:"last_comment"`
}

type TopicComment

type TopicComment struct {
	ID          int               `json:"id"`
	FromID      int               `json:"from_id"`
	Date        int64             `json:"date"`
	Text        string            `json:"text"`
	Likes       *TopicCommentLike `json:"likes"`
	ReplyToUID  int               `json:"reply_to_uid"`
	ReplyToCID  int               `json:"reply_to_cid"`
	Attachments []*Attachment     `json:"attachments"`
}

type TopicCommentLike

type TopicCommentLike struct {
	Count     int `json:"count"`
	UserLikes int `json:"user_likes"`
	CanLike   int `json:"can_like"`
}

type Topics

type Topics struct {
	Count        int      `json:"count"`
	Topics       []*Topic `json:"items"`
	DefaultOrder float64  `json:"default_order"`
	CanAddTopics int      `json:"can_add_topics"`
	Profiles     []*User  `json:"profiles"`
}

type University

type University struct {
	UniversityID    int    `json:"id"`
	CountryID       int    `json:"country"`
	CityID          int    `json:"city"`
	Name            string `json:"name"`
	Faculty         int    `json:"faculty"`
	FacultyName     string `json:"faculty_name"`
	Chair           int    `json:"chair"`
	ChairName       string `json:"chair_name"`
	Graduation      int    `json:"graduation"`
	EducationForm   string `json:"education_form"`
	EducationStatus string `json:"education_status"`
}

University - университет. Выдается в массиве - списке вузов, в которых учился пользователь. Объект содержит следующие поля: id (integer)— идентификатор университета; country (integer) — идентификатор страны, в которой расположен университет; city (integer) — идентификатор города, в котором расположен университет; name (string) — наименование университета; faculty (integer) — идентификатор факультета; faculty_name (string) — наименование факультета; chair (integer) — идентификатор кафедры; chair_name (string) — наименование кафедры; graduation (integer) — год окончания обучения; education_form (string) — форма обучения; education_status (string) — статус (например, «Выпускник (специалист)»).

type User

type User struct {
	UID                    int             `json:"id"`                        // Идентификатор пользователя.
	FirstName              string          `json:"first_name"`                // Имя.
	LastName               string          `json:"last_name"`                 // Фамилия.
	Deactivated            string          `json:"deactivated"`               // Поле возвращается, если страница пользователя удалена или заблокирована, содержит значение deleted или banned. В этом случае опциональные поля не возвращаются.
	IsClosed               bool            `json:"is_closed"`                 // Скрыт ли профиль пользователя настройками приватности.
	CanAccessClosed        bool            `json:"can_access_closed"`         // Может ли текущий пользователь видеть профиль при is_closed = 1 (например, он есть в друзьях).
	About                  string          `json:"about"`                     // Содержимое поля «О себе» из профиля.
	Activities             string          `json:"activities"`                // Содержимое поля «Деятельность» из профиля.
	Bdate                  string          `json:"bdate"`                     // Дата рождения. Возвращается в формате D.M.YYYY или D.M (если год рождения скрыт). Если дата рождения скрыта целиком, поле отсутствует в ответе.
	Blacklisted            int             `json:"blacklisted"`               // Информация о том, находится ли текущий пользователь в черном списке. Возможные значения: 1 — находится; 0 — не находится.
	BlacklistedByMe        int             `json:"blacklisted_by_me"`         // Информация о том, находится ли пользователь в черном списке у текущего пользователя. Возможные значения: 1 — находится; 0 — не находится.
	Books                  string          `json:"books"`                     // Содержимое поля «Любимые книги» из профиля пользователя.
	CanPost                int             `json:"can_post"`                  // Информация о том, может ли текущий пользователь оставлять записи на стене. Возможные значения: 1 — может; 0 — не может.
	CanSeeAllPosts         int             `json:"can_see_all_posts"`         // Информация о том, может ли текущий пользователь видеть чужие записи на стене. Возможные значения: 1 — может; 0 — не может.
	CanSeeAudio            int             `json:"can_see_audio"`             // Информация о том, может ли текущий пользователь видеть аудиозаписи. Возможные значения: 1 — может; 0 — не может.
	CanSendFriendRequest   int             `json:"can_send_friend_request"`   // Информация о том, будет ли отправлено уведомление пользователю о заявке в друзья от текущего пользователя. Возможные значения: 1 — уведомление будет отправлено; 0 — уведомление не будет отправлено.
	CanWritePrivateMessage int             `json:"can_write_private_message"` // Информация о том, может ли текущий пользователь отправить личное сообщение. Возможные значения: 1 — может; 0 — не может.
	Career                 []Career        `json:"career"`                    // Информация о карьере пользователя. Объект, содержащий следующие поля: group_id (integer) — идентификатор сообщества (если доступно, иначе company); company (string) — название компании (если доступно, иначе group_id); country_id (integer) — идентификатор страны; city_id (integer) — идентификатор города (если доступно, иначе city_name); city_name (string) — название города (если доступно, иначе city_id); from (integer) — год начала работы; until (integer) — год окончания работы; position (string) — должность.
	City                   *UserCity       `json:"city"`                      // Информация о городе, указанном на странице пользователя в разделе «Контакты». Возвращаются следующие поля: id (integer) — идентификатор города, который можно использовать для получения его названия с помощью метода database.getCitiesById; title (string) — название города.
	CommonCount            int             `json:"common_count"`              // Количество общих друзей с текущим пользователем.
	Connections            string          `json:"connections"`               // Возвращает данные об указанных в профиле сервисах пользователя, таких как: skype, livejournal. Для каждого сервиса возвращается отдельное поле с типом string, содержащее никнейм пользователя. Например, "skype": "username".
	Contacts               *UserContacts   `json:"contacts"`                  // Информация о телефонных номерах пользователя. Если данные указаны и не скрыты настройками приватности, возвращаются следующие поля: mobile_phone (string) — номер мобильного телефона пользователя (только для Standalone-приложений); home_phone (string) — дополнительный номер телефона пользователя.
	Counters               *UserCounters   `json:"counters"`                  // Количество различных объектов у пользователя. Поле возвращается только в методе users.get при запросе информации об одном пользователе, с передачей пользовательского access_token. Объект, содержащий следующие поля: albums (integer) — количество фотоальбомов; videos (integer) — количество видеозаписей; audios (integer) — количество аудиозаписей; photos (integer) — количество фотографий; notes (integer) — количество заметок; friends (integer) — количество друзей; groups (integer) — количество сообществ; online_friends (integer) — количество друзей онлайн; mutual_friends (integer) — количество общих друзей; user_videos (integer) — количество видеозаписей с пользователем; followers (integer) — количество подписчиков; pages (integer) — количество объектов в блоке «Интересные страницы».
	Country                *UserCountry    `json:"country"`                   // Информация о стране, указанной на странице пользователя в разделе «Контакты». Возвращаются следующие поля: id (integer) — идентификатор страны, который можно использовать для получения ее названия с помощью метода database.getCountriesById; title (string) — название страны.
	Domain                 string          `json:"domain"`                    // Короткий адрес страницы. Возвращается строка, содержащая короткий адрес страницы (например, andrew). Если он не назначен, возвращается "id"+user_id, например, id35828305.
	Education              *UserEducation  `json:"education"`                 // Информация о высшем учебном заведении пользователя. Возвращаются поля: university (integer) — идентификатор университета; university_name (string) — название университета; faculty (integer) — идентификатор факультета; faculty_name (string)— название факультета; graduation (integer) — год окончания.
	Exports                string          `json:"exports"`                   // Внешние сервисы, в которые настроен экспорт из ВК ( livejournal).
	FirstNameCaseNom       string          `json:"first_name_nom"`            // Имя в заданном падеже. Возможные значения для {case}: nom — именительный; gen — родительный; dat — дательный; acc — винительный; ins — творительный; abl — предложный. В запросе можно передать несколько значений
	FirstNameCaseGen       string          `json:"first_name_gen"`            // Имя в заданном падеже. Возможные значения для {case}: nom — именительный; gen — родительный; dat — дательный; acc — винительный; ins — творительный; abl — предложный. В запросе можно передать несколько значений
	FirstNameCaseDat       string          `json:"first_name_dat"`            // Имя в заданном падеже. Возможные значения для {case}: nom — именительный; gen — родительный; dat — дательный; acc — винительный; ins — творительный; abl — предложный. В запросе можно передать несколько значений
	FirstNameCaseAcc       string          `json:"first_name_acc"`            // Имя в заданном падеже. Возможные значения для {case}: nom — именительный; gen — родительный; dat — дательный; acc — винительный; ins — творительный; abl — предложный. В запросе можно передать несколько значений
	FirstNameCaseIns       string          `json:"first_name_ins"`            // Имя в заданном падеже. Возможные значения для {case}: nom — именительный; gen — родительный; dat — дательный; acc — винительный; ins — творительный; abl — предложный. В запросе можно передать несколько значений
	FirstNameCaseAbl       string          `json:"first_name_abl"`            // Имя в заданном падеже. Возможные значения для {case}: nom — именительный; gen — родительный; dat — дательный; acc — винительный; ins — творительный; abl — предложный. В запросе можно передать несколько значений
	FollowersCount         int             `json:"followers_count"`           // Количество подписчиков пользователя.
	FriendStatus           int             `json:"friend_status"`             // Статус дружбы с пользователем. Возможные значения: 0 — не является другом, 1 — отправлена заявка/подписка пользователю, 2 — имеется входящая заявка/подписка от пользователя, 3 — является другом.
	Games                  string          `json:"games"`                     // Содержимое поля «Любимые игры» из профиля.
	HasMobile              int             `json:"has_mobile"`                // Информация о том, известен ли номер мобильного телефона пользователя. Возвращаемые значения: 1 — известен, 0 — не известен.
	HasPhoto               int             `json:"has_photo"`                 // Информация о том, установил ли пользователь фотографию для профиля. Возвращаемые значения: 1 — установил, 0 — не установил.
	HomeTown               string          `json:"home_town"`                 // Название родного города.
	Interests              string          `json:"interests"`                 // Содержимое поля «Интересы» из профиля.
	IsFavorite             int             `json:"is_favorite"`               // Информация о том, есть ли пользователь в закладках у текущего пользователя. Возможные значения: 1 — есть; 0 — нет.
	IsFriend               int             `json:"is_friend"`                 // Информация о том, является ли пользователь другом текущего пользователя. Возможные значения: 1 — да; 0 — нет.
	IsHiddenFromFeed       int             `json:"is_hidden_from_feed"`       // Информация о том, скрыт ли пользователь из ленты новостей текущего пользователя. Возможные значения: 1 — да; 0 — нет.
	IsNoIndex              int             `json:"is_no_index"`               // Индексируется ли профиль поисковыми сайтами. Возможные значения: 1 — профиль скрыт от поисковых сайтов; 0 — профиль доступен поисковым сайтам. (В настройках приватности: https://vk.com/settings?act=privacy, в пункте «Кому в интернете видна моя страница», выбрано значение «Всем»).
	LastNameCaseNom        string          `json:"last_name_nom"`             // Фамилия в заданном падеже. Возможные значения для {case}: nom — именительный; gen — родительный; dat — дательный; ac — винительный; ins — творительный; abl — предложный.
	LastNameCaseGen        string          `json:"last_name_gen"`             // Фамилия в заданном падеже. Возможные значения для {case}: nom — именительный; gen — родительный; dat — дательный; ac — винительный; ins — творительный; abl — предложный.
	LastNameCaseDat        string          `json:"last_name_dat"`             // Фамилия в заданном падеже. Возможные значения для {case}: nom — именительный; gen — родительный; dat — дательный; ac — винительный; ins — творительный; abl — предложный.
	LastNameCaseAcc        string          `json:"last_name_acc"`             // Фамилия в заданном падеже. Возможные значения для {case}: nom — именительный; gen — родительный; dat — дательный; ac — винительный; ins — творительный; abl — предложный.
	LastNameCaseIns        string          `json:"last_name_ins"`             // Фамилия в заданном падеже. Возможные значения для {case}: nom — именительный; gen — родительный; dat — дательный; ac — винительный; ins — творительный; abl — предложный.
	LastNameCaseAbl        string          `json:"last_name_abl"`             // Фамилия в заданном падеже. Возможные значения для {case}: nom — именительный; gen — родительный; dat — дательный; ac — винительный; ins — творительный; abl — предложный.
	LastSeen               *LastSeen       `json:"last_seen"`                 // Время последнего посещения. Объект, содержащий следующие поля: time (integer) — время последнего посещения в формате Unixtime. platform (integer) — тип платформы. Возможные значения: 1 — мобильная версия; 2 — приложение для iPhone; 3 — приложение для iPad; 4 — приложение для Android; 5 — приложение для Windows Phone; 6 — приложение для Windows 10; 7 — полная версия сайта.
	Lists                  string          `json:"lists"`                     // Разделенные запятой идентификаторы списков друзей, в которых состоит пользователь. Поле доступно только для метода friends.get.
	MaidenName             string          `json:"maiden_name"`               // Девичья фамилия.
	Military               []Military      `json:"military"`                  // Информация о военной службе пользователя. Объект, содержащий следующие поля: unit (string) — номер части; unit_id (integer) — идентификатор части в базе данных; country_id (integer) — идентификатор страны, в которой находится часть; from (integer) — год начала службы; until (integer) — год окончания службы.
	Movies                 string          `json:"movies"`                    // Содержимое поля «Любимые фильмы» из профиля пользователя.
	Music                  string          `json:"music"`                     // Содержимое поля «Любимая музыка» из профиля пользователя.
	Nickname               string          `json:"nickname"`                  // Никнейм (отчество) пользователя.
	Occupation             *UserOccupation `json:"occupation"`                // Информация о текущем роде занятия пользователя. Объект, содержащий следующие поля: type (string) — тип. Возможные значения: work — работа; school — среднее образование; university — высшее образование. id (integer) — идентификатор школы, вуза, сообщества компании (в которой пользователь работает); name (string) — название школы, вуза или места работы;
	Online                 int             `json:"online"`                    // Информация о том, находится ли пользователь сейчас на сайте. Если пользователь использует мобильное приложение либо мобильную версию, возвращается дополнительное поле online_mobile, содержащее 1. При этом, если используется именно приложение, дополнительно возвращается поле online_app, содержащее его идентификатор.
	Personal               *Personal       `json:"personal"`                  // Информация о полях из раздела «Жизненная позиция». political (integer) — политические предпочтения. Возможные значения: 1 — коммунистические; 2 — социалистические; 3 — умеренные; 4 — либеральные; 5 — консервативные; 6 — монархические; 7 — ультраконсервативные; 8 — индифферентные; 9 — либертарианские. langs (array) — языки. religion (string) — мировоззрение. inspired_by (string) — источники вдохновения. people_main (integer) — главное в людях. Возможные значения: 1 — ум и креативность; 2 — доброта и честность; 3 — красота и здоровье; 4 — власть и богатство; 5 — смелость и упорство; 6 — юмор и жизнелюбие. life_main (integer) — главное в жизни. Возможные значения: 1 — семья и дети; 2 — карьера и деньги; 3 — развлечения и отдых; 4 — наука и исследования; 5 — совершенствование мира; 6 — саморазвитие; 7 — красота и искусство; 8 — слава и влияние; smoking (integer) — отношение к курению. Возможные значения: 1 — резко негативное; 2 — негативное; 3 — компромиссное; 4 — нейтральное; 5 — положительное. alcohol (integer) — отношение к алкоголю. Возможные значения: 1 — резко негативное; 2 — негативное; 3 — компромиссное; 4 — нейтральное; 5 — положительное.
	Photo                  string          `json:"photo"`                     //
	PhotoMedium            string          `json:"photo_medium"`              //
	PhotoBig               string          `json:"photo_big"`                 //
	Photo50                string          `json:"photo_50"`                  // URL квадратной фотографии пользователя, имеющей ширину 50 пикселей. В случае отсутствия у пользователя фотографии возвращается https://vk.com/images/camera_50.png.
	Photo100               string          `json:"photo_100"`                 // URL квадратной фотографии пользователя, имеющей ширину 100 пикселей. В случае отсутствия у пользователя фотографии возвращается https://vk.com/images/camera_100.png.
	Photo200Orig           string          `json:"photo_200_orig"`            // URL фотографии пользователя, имеющей ширину 200 пикселей. В случае отсутствия у пользователя фотографии возвращается https://vk.com/images/camera_200.png.
	Photo200               string          `json:"photo_200"`                 // URL квадратной фотографии, имеющей ширину 200 пикселей. Если у пользователя отсутствует фотография таких размеров, в ответе вернется https://vk.com/images/camera_200.png
	Photo400Orig           string          `json:"photo_400_orig"`            // URL фотографии, имеющей ширину 400 пикселей. Если у пользователя отсутствует фотография такого размера, в ответе вернется https://vk.com/images/camera_400.png.
	PhotoId                string          `json:"photo_id"`                  // Строковый идентификатор главной фотографии профиля пользователя в формате {user_id}_{photo_id}, например, 6492_192164258. Обратите внимание, это поле может отсутствовать в ответе.
	PhotoMax               string          `json:"photo_max"`                 // URL квадратной фотографии с максимальной шириной. Может быть возвращена фотография, имеющая ширину как 200, так и 100 пикселей. В случае отсутствия у пользователя фотографии возвращается https://vk.com/images/camera_200.png.
	PhotoMaxOrig           string          `json:"photo_max_orig"`            // URL фотографии максимального размера. Может быть возвращена фотография, имеющая ширину как 400, так и 200 пикселей. В случае отсутствия у пользователя фотографии возвращается https://vk.com/images/camera_400.png.
	Quotes                 string          `json:"quotes"`                    // Любимые цитаты.
	Relatives              []Relative      `json:"relatives"`                 // Список родственников. Массив объектов, каждый из которых содержит поля: id (integer) — идентификатор пользователя; name (string) — имя родственника (если родственник не является пользователем ВКонтакте, то предыдущее значение id возвращено не будет); type (string) — тип родственной связи. Возможные значения: child — сын/дочь; sibling — брат/сестра; parent — отец/мать; grandparent — дедушка/бабушка; grandchild — внук/внучка.
	Relation               int             `json:"relation"`                  // Семейное положение. Возможные значения: 1 — не женат/не замужем; 2 — есть друг/есть подруга; 3 — помолвлен/помолвлена; 4 — женат/замужем; 5 — всё сложно; 6 — в активном поиске; 7 — влюблён/влюблена; 8 — в гражданском браке; 0 — не указано. Если в семейном положении указан другой пользователь, дополнительно возвращается объект relation_partner, содержащий id и имя этого человека.
	Schools                []School        `json:"schools"`                   // Список школ, в которых учился пользователь. Массив объектов, описывающих школы. Каждый объект содержит следующие поля: id (string) — идентификатор школы; country (integer) — идентификатор страны, в которой расположена школа; city (integer) — идентификатор города, в котором расположена школа; name (string) — наименование школы year_from (integer) — год начала обучения; year_to (integer) — год окончания обучения; year_graduated (integer) — год выпуска; class (string) — буква класса; speciality (string) — специализация; type (integer) — идентификатор типа; type_str (string) — название типа. Возможные значения для пар type-typeStr: 0 — "школа"; 1 — "гимназия"; 2 — "лицей"; 3 — "школа-интернат"; 4 — "школа вечерняя"; 5 — "школа музыкальная"; 6 — "школа спортивная"; 7 — "школа художественная"; 8 — "колледж"; 9 — "профессиональный лицей"; 10 — "техникум"; 11 — "ПТУ"; 12 — "училище"; 13 — "школа искусств".
	ScreenName             string          `json:"screen_name"`               // Короткое имя страницы.
	Sex                    int             `json:"sex"`                       // Пол. Возможные значения: 1 — женский; 2 — мужской; 0 — пол не указан.
	Site                   string          `json:"site"`                      // Адрес сайта, указанный в профиле.
	Status                 string          `json:"status"`                    // Статус пользователя. Возвращается строка, содержащая текст статуса, расположенного в профиле под именем. Если включена опция «Транслировать в статус играющую музыку», возвращается дополнительное поле status_audio, содержащее информацию о композиции.
	Timezone               int             `json:"timezone"`                  // Временная зона. Только при запросе информации о текущем пользователе.
	Trending               int             `json:"trending"`                  // Информация о том, есть ли на странице пользователя «огонёк».
	Tv                     string          `json:"tv"`                        // Любимые телешоу.
	Universities           []University    `json:"universities"`              // Список вузов, в которых учился пользователь. Массив объектов, описывающих университеты. Каждый объект содержит следующие поля: id (integer)— идентификатор университета; country (integer) — идентификатор страны, в которой расположен университет; city (integer) — идентификатор города, в котором расположен университет; name (string) — наименование университета; faculty (integer) — идентификатор факультета; faculty_name (string) — наименование факультета; chair (integer) — идентификатор кафедры; chair_name (string) — наименование кафедры; graduation (integer) — год окончания обучения; education_form (string) — форма обучения; education_status (string) — статус (например, «Выпускник (специалист)»).
	Verified               int             `json:"verified"`                  // Возвращается 1, если страница пользователя верифицирована, 0 — если нет.
	WallDefault            string          `json:"wall_default"`              // Режим стены по умолчанию. Возможные значения: owner, all.
}

User содержит ВСЕ личные данные пользователя ВК

type UserCity

type UserCity struct {
	ID    int    `json:"id"`
	Title string `json:"title"`
}

UserCity содержит id и название населенного пункта пользователя ВК Информация о городе, указанном на странице пользователя в разделе «Контакты». Возвращаются следующие поля: id (integer) — идентификатор города, который можно использовать для получения его названия с помощью метода database.getCitiesById; title (string) — название города.

type UserContacts

type UserContacts struct {
	MobilePhone string `json:"mobile_phone"`
	HomePhone   string `json:"home_phone"`
}

Contacts содержит информацию о телефонных номерах пользователя. Если данные указаны и не скрыты настройками приватности, возвращаются следующие поля: mobile_phone (string) — номер мобильного телефона пользователя (только для Standalone-приложений); home_phone (string) — дополнительный номер телефона пользователя.

type UserCounters

type UserCounters struct {
	Albums         int `json:"albums"`
	Videos         int `json:"videos"`
	Audios         int `json:"audios"`
	Photos         int `json:"photos"`
	Notes          int `json:"notes"`
	Friends        int `json:"friends"`
	Groups         int `json:"groups"`
	OnlineFriends  int `json:"online_friends"`
	Mutual_friends int `json:"mutual_friends"`
	UserVideos     int `json:"user_videos"`
	Followers      int `json:"followers"`
	Pages          int `json:"pages"`
}

Counters - количество различных объектов у пользователя. Поле возвращается только в методе users.get при запросе информации об одном пользователе, с передачей пользовательского access_token. Объект, содержащий следующие поля: albums (integer) — количество фотоальбомов; videos (integer) — количество видеозаписей; audios (integer) — количество аудиозаписей; photos (integer) — количество фотографий; notes (integer) — количество заметок; friends (integer) — количество друзей; groups (integer) — количество сообществ; online_friends (integer) — количество друзей онлайн; mutual_friends (integer) — количество общих друзей; user_videos (integer) — количество видеозаписей с пользователем; followers (integer) — количество подписчиков; pages (integer) — количество объектов в блоке «Интересные страницы».

type UserCountry

type UserCountry struct {
	ID    int    `json:"id"`
	Title string `json:"title"`
}

UserCountry содержит id и название страны пользователя ВК Информация о стране, указанной на странице пользователя в разделе «Контакты». Возвращаются следующие поля: id (integer) — идентификатор страны, который можно использовать для получения ее названия с помощью метода database.getCountriesById; title (string) — название страны.

type UserEducation

type UserEducation struct {
	UniversityID   int    `json:"university"`
	UniversityName string `json:"university_name"`
	FacultyID      int    `json:"faculty"`
	FacultyName    string `json:"faculty_name"`
	Graduation     int    `json:"graduation"`
}

UserEducation - информация о высшем учебном заведении пользователя. Возвращаются поля: university (integer) — идентификатор университета; university_name (string) — название университета; faculty (integer) — идентификатор факультета; faculty_name (string)— название факультета; graduation (integer) — год окончания.

type UserMin

type UserMin struct {
	UID             int    `json:"id"`                // Идентификатор пользователя.
	FirstName       string `json:"first_name"`        // Имя.
	LastName        string `json:"last_name"`         // Фамилия.
	Deactivated     string `json:"deactivated"`       // Поле возвращается, если страница пользователя удалена или заблокирована, содержит значение deleted или banned. В этом случае опциональные поля не возвращаются.
	IsClosed        bool   `json:"is_closed"`         // Скрыт ли профиль пользователя настройками приватности.
	CanAccessClosed bool   `json:"can_access_closed"` // Может ли текущий пользователь видеть профиль при is_closed = 1 (например, он есть в друзьях).
}

type UserNorm

type UserNorm struct {
	//type User struct {
	UID                     int          `json:"id"`
	FirstName               string       `json:"first_name"`
	LastName                string       `json:"last_name"`
	Sex                     int          `json:"sex"`
	Nickname                string       `json:"nickname"`
	ScreenName              string       `json:"screen_name"`
	BDate                   string       `json:"bdate"`
	City                    *UserCity    `json:"city"`
	Country                 *UserCountry `json:"country"`
	Photo                   string       `json:"photo"`
	PhotoMedium             string       `json:"photo_medium"`
	PhotoBig                string       `json:"photo_big"`
	Photo50                 string       `json:"photo_50"`
	Photo100                string       `json:"photo_100"`
	HasMobile               int          `json:"has_mobile"`
	Online                  int          `json:"online"`
	OnlineInfo              *OnlineInfo  `json:"online_info"`
	CanPost                 int          `json:"can_post"`
	CanSeeAllPosts          int          `json:"can_see_all_posts"`
	CanWritePrivateMessages int          `json:"can_write_private_message"`
	Status                  string       `json:"status"`
	LastSeen                *LastSeen    `json:"last_seen"`
	Hidden                  int          `json:"hidden"`
	Deactivated             string       `json:"deactivated"`
	Relation                int          `json:"relation"`
}

User содержит все (ли?) личные данные пользователя ВК

type UserOccupation

type UserOccupation struct {
	Type string `json:"type"`
	ID   int    `json:"id"`
	Name string `json:"name"`
}

UserOccupation - информация о текущем роде занятия пользователя. Объект, содержащий следующие поля: type (string) — тип. Возможные значения: work — работа; school — среднее образование; university — высшее образование$ id (integer) — идентификатор школы, вуза, сообщества компании (в которой пользователь работает); name (string) — название школы, вуза или места работы.

type VKClient

type VKClient struct {
	Self   Token
	Client *http.Client
	// contains filtered or unexported fields
}

VKClient содержит авторизационные данные и настройки коммуникации с сервером ВК

func NewVKClient

func NewVKClient(device int, user string, password string, code string, limitrate bool) (*VKClient, error)

func NewVKClientWithToken

func NewVKClientWithToken(token string, options *TokenOptions, limitrate bool) (*VKClient, error)

func (*VKClient) AddLongpollCallback

func (client *VKClient) AddLongpollCallback(name string, f func(*LongPollMessage))

func (*VKClient) BoardAddTopic

func (client *VKClient) BoardAddTopic(groupID int, title string, text string, fromGroup bool, attachments []string) (int, error)

func (*VKClient) BoardCloseTopic

func (client *VKClient) BoardCloseTopic(groupID int, topicID int) (bool, error)

func (*VKClient) BoardCreateComment

func (client *VKClient) BoardCreateComment(groupID int, topicID int, message string, attachments []string, fromGroup bool, stickerID int) (int, error)

func (*VKClient) BoardDeleteComment

func (client *VKClient) BoardDeleteComment(groupID int, topicID int, commetID int) (bool, error)

func (*VKClient) BoardDeleteTopic

func (client *VKClient) BoardDeleteTopic(groupID int, topicID int) (bool, error)

func (*VKClient) BoardEditComment

func (client *VKClient) BoardEditComment(groupID int, topicID int, commentID int, message string, attachments []string) (bool, error)

func (*VKClient) BoardEditTopic

func (client *VKClient) BoardEditTopic(groupID int, topicID int, title string) (bool, error)

func (*VKClient) BoardFixTopic

func (client *VKClient) BoardFixTopic(groupID int, topicID int) (bool, error)

func (*VKClient) BoardGetComments

func (client *VKClient) BoardGetComments(groupID int, topicID int, count int, params url.Values) (*Comments, error)

func (*VKClient) BoardGetTopics

func (client *VKClient) BoardGetTopics(groupID int, count int, params url.Values) (*Topics, error)

func (*VKClient) BoardOpenTopic

func (client *VKClient) BoardOpenTopic(groupID int, topicID int) (bool, error)

func (*VKClient) BoardRestoreComment

func (client *VKClient) BoardRestoreComment(groupID int, topicID int, commentID int) (bool, error)

func (*VKClient) BoardUnfixTopic

func (client *VKClient) BoardUnfixTopic(groupID int, topicID int) (bool, error)

func (*VKClient) DeleteLongpollCallback

func (client *VKClient) DeleteLongpollCallback(name string)

func (*VKClient) DialogsGet

func (client *VKClient) DialogsGet(count int, params url.Values) (*Dialog, error)

DialogsGet возвращает список диалогов текущего пользователя или сообщества. Актуальный метод: messages.getConversations.

Данный метод устарел и может быть отключён через некоторое время, пожалуйста, избегайте его использования.

func (*VKClient) DocsSearch

func (client *VKClient) DocsSearch(query string, count int, params url.Values) (int, []*DocAttachment, error)

func (*VKClient) FriendsAdd

func (client *VKClient) FriendsAdd(userID int, text string, follow int) (int, error)

FriendsAdd - одобряет или создаёт заявку на добавление в друзья. user_id (positive) - Идентификатор пользователя, которому необходимо отправить заявку, либо заявку от которого необходимо одобрить. text (string) - Текст сопроводительного сообщения для заявки на добавление в друзья. Максимальная длина сообщения - 500 символов. follow (checkbox) = 1, если необходимо отклонить входящую заявку (оставить пользователя в подписчиках).

После успешного выполнения возвращает одно из следующих значений: 1 - заявка на добавление данного пользователя в друзья отправлена; 2 - заявка на добавление в друзья от данного пользователя одобрена; 4 - повторная отправка заявки.

func (*VKClient) FriendsDelete

func (client *VKClient) FriendsDelete(userID int) (bool, error)

FriendsDelete - удаляет пользователя из списка друзей или отклоняет заявку в друзья. user_id (positive) - Идентификатор пользователя, которого необходимо удалить из списка друзей, либо заявку от которого необходимо отклонить. Результат - возвращается объект с полями (типа "success":1): success - удалось успешно удалить друга; friend_deleted - был удален друг; out_request_deleted - отменена исходящая заявка; in_request_deleted - отклонена входящая заявка; suggestion_deleted - отклонена рекомендация друга.

func (*VKClient) FriendsGet

func (client *VKClient) FriendsGet(uid int, count int, offset int, fields string) (int, []*User, error)

FriendsGet возвращает список идентификаторов друзей пользователя (см. FriendsGetIds) или расширенную информацию о друзьях пользователя (при использовании параметра fields).

Если вы используете социальный граф пользователя ВКонтакте в своём приложении, обратите внимание на п. 4.4. Правил платформы (https://dev.vk.com/rules)

user_id (integer) - Идентификатор пользователя, для которого необходимо получить список друзей. Если параметр не задан, то считается, что он равен идентификатору текущего пользователя (справедливо для вызова с передачей access_token).

order (string) - Порядок, в котором нужно вернуть список друзей. Допустимые значения: hints — сортировать по рейтингу, аналогично тому, как друзья сортируются в разделе Мои друзья. Это значение доступно только для Standalone-приложений с ключом доступа, полученным по схеме Implicit Flow. random — возвращает друзей в случайном порядке. name — сортировать по имени. Данный тип сортировки работает медленно, так как сервер будет получать всех друзей а не только указанное количество count. (работает только при переданном параметре fields). По умолчанию список сортируется в порядке возрастания идентификаторов пользователей.

count (positive) - Количество друзей, которое нужно вернуть. 0 - вернуть всех друзей. При использовании параметра fields возвращается не более 5000 друзей.

offset (positive) - Смещение, необходимое для выборки определенного подмножества друзей.

fields (string) - Список дополнительных полей, которые необходимо вернуть (см. var userFields в user.go).

name_case (string) - Падеж для склонения имени и фамилии пользователя. Возможные значения: именительный – nom; родительный – gen; дательный – dat; винительный – acc; творительный – ins; предложный – abl. По умолчанию nom.

Результат. После успешного выполнения возвращает список идентификаторов (id) друзей пользователя, если параметр fields не использовался. При использовании параметра fields возвращает список объектов пользователей, но не более 5000.

func (*VKClient) FriendsGetIds

func (client *VKClient) FriendsGetIds(uid int) (count int, userIds []int, err error)

FriendsGetIds возвращает только список идентификаторов всех друзей пользователя. или расширенную информацию о друзьях пользователя (при использовании параметра fields).

Если вы используете социальный граф пользователя ВКонтакте в своём приложении, обратите внимание на п. 4.4. Правил платформы (https://dev.vk.com/rules)

user_id (integer) - Идентификатор пользователя, для которого необходимо получить список друзей. Если параметр не задан, то считается, что он равен идентификатору текущего пользователя (справедливо для вызова с передачей access_token).

func (*VKClient) FriendsGetRequests

func (client *VKClient) FriendsGetRequests(count int, out int) (int, []*Request, error)

FriendsGetRequests возвращает информацию о полученных или отправленных заявках на добавление в друзья для текущего пользователя.

offset (positive) - Смещение, необходимое для выборки определенного подмножества заявок на добавление в друзья.

count (positive) - Максимальное количество заявок на добавление в друзья, которые необходимо получить (не более 1000). По умолчанию — 100.

extended (checkbox) - Определяет, требуется ли возвращать в ответе сообщения от пользователей, подавших заявку на добавление в друзья. И отправителя рекомендации при suggested = 1.

need_mutual (checkbox) - Определяет, требуется ли возвращать в ответе список общих друзей, если они есть. Обратите внимание, что при использовании need_mutual будет возвращено не более 2 заявок.

out (checkbox) - 0 — возвращать полученные заявки в друзья (по умолчанию), 1 — возвращать отправленные пользователем заявки.

sort (positive) - 0 — сортировать по дате добавления, 1 — сортировать по количеству общих друзей. (Если out = 1, этот параметр не учитывается).

Результат. Если не установлен параметр need_mutual, то в случае успеха возвращает отсортированный в антихронологическом порядке по времени подачи заявки список идентификаторов (id) пользователей (кому или от кого пришла заявка). Если установлен параметр need_mutual, то в случае успеха возвращает отсортированный в антихронологическом порядке по времени подачи заявки массив объектов, содержащих информацию о заявках на добавление в друзья. Каждый из объектов содержит поле uid, являющийся идентификатором пользователя. При наличии общих друзей, в объекте будет содержаться поле mutual, в котором будет находиться список идентификаторов общих друзей.

func (*VKClient) GetDocsString

func (client *VKClient) GetDocsString(docs []*DocAttachment) string

func (*VKClient) GetGifts

func (client *VKClient) GetGifts(id int, count int, offset int) (*Gift, error)

func (*VKClient) GetHistoryAttachments

func (client *VKClient) GetHistoryAttachments(peerID int, mediaType string, count int, params url.Values) (*HistoryAttachment, error)

GetHistoryAttachments возвращает материалы диалога или беседы.

func (*VKClient) GetPhotosString

func (client *VKClient) GetPhotosString(photos []*PhotoAttachment) string
func (client *VKClient) GetShortLink(toUrl string, private int) (*ShortLink, error)

func (*VKClient) GroupGet

func (client *VKClient) GroupGet(userID int, count int) (int, []*Group, error)

GroupGet возвращает список сообществ указанного пользователя.

func (*VKClient) GroupGetMembers

func (client *VKClient) GroupGetMembers(group_id, count, offset int) (int, []*User, error)

GroupGetMembers возвращает список участников сообщества.

func (*VKClient) GroupSearch

func (client *VKClient) GroupSearch(query string, count int) (int, []*Group, error)

GroupSearch осуществляет поиск сообществ по заданной подстроке.

func (*VKClient) GroupSendInvite

func (client *VKClient) GroupSendInvite(groupID int, userID int) error

GroupSendInvite позволяет приглашать друзей в группу.

func (*VKClient) GroupsGetByID

func (client *VKClient) GroupsGetByID(groupsID []int) ([]*Group, error)

GroupsGetByID возвращает информацию о заданном сообществе или о нескольких сообществах.

func (*VKClient) LikesGet

func (client *VKClient) LikesGet(itemType string, ownerID int, itemID int, count int, params url.Values) (int, []*LikeUser, error)

LikesGet получает список идентификаторов пользователей, которые добавили заданный объект в свой список «Мне нравится».

Обратите внимание, данные о репостах доступны только для записей, созданных текущим пользователем или сообществом, в котором он является администратором.

func (*VKClient) ListenLongPollServer

func (client *VKClient) ListenLongPollServer()

func (*VKClient) ListenLongPollServerWithCancel

func (client *VKClient) ListenLongPollServerWithCancel(cancelCtx context.Context)

func (*VKClient) MakeRequest

func (client *VKClient) MakeRequest(method string, params url.Values) (APIResponse, error)

func (*VKClient) MessagesDelete

func (client *VKClient) MessagesDelete(ids []int, spam int, deleteForAll int) (int, error)

MessagesDelete удаляет сообщение.

func (*VKClient) MessagesGet

func (client *VKClient) MessagesGet(count int, chatID int, isDialog bool, params url.Values) (int, []*DialogMessage, error)

MessagesGet возвращает список входящих личных сообщений текущего пользователя или сообщества.

Данный метод устарел и может быть отключён через некоторое время, пожалуйста, избегайте его использования.

func (*VKClient) MessagesGetByID

func (client *VKClient) MessagesGetByID(message_ids []int, params url.Values) (int, []*DialogMessage, error)

MessagesGetByID возвращает сообщения по их идентификаторам.

func (*VKClient) MessagesSend

func (client *VKClient) MessagesSend(peerOrDomain interface{}, message string, params url.Values) (APIResponse, error)

MessagesSend отправляет сообщение "message" адресату "peerOrDomain", заданному в ВК номером id или коротким именем

func (*VKClient) MessagesSetActivity

func (client *VKClient) MessagesSetActivity(user int, params url.Values) error

MessagesSetActivity изменяет статус набора текста пользователем в диалоге.

func (*VKClient) ResolveScreenName

func (client *VKClient) ResolveScreenName(name string) (ResolveScreenName, error)

func (*VKClient) SetCustomHTTPClient

func (c *VKClient) SetCustomHTTPClient(client *http.Client)

func (*VKClient) UploadByLinkGroupWallPhotos

func (client *VKClient) UploadByLinkGroupWallPhotos(groupID int, urlFile string) ([]*PhotoAttachment, error)

func (*VKClient) UploadGroupWallDoc

func (client *VKClient) UploadGroupWallDoc(groupID int, fileName string) (*DocAttachment, error)

func (*VKClient) UploadGroupWallPhotos

func (client *VKClient) UploadGroupWallPhotos(groupID int, files []string) ([]*PhotoAttachment, error)

func (*VKClient) UploadMessagesPhotos

func (client *VKClient) UploadMessagesPhotos(peerID int, files []string) ([]*PhotoAttachment, error)

func (*VKClient) UsersGet

func (client *VKClient) UsersGet(users []int, fields string) ([]*User, error)

func (*VKClient) VideoGet

func (client *VKClient) VideoGet(ownerID int, count int, params url.Values) (*Videos, error)

func (*VKClient) WallGet

func (client *VKClient) WallGet(id interface{}, count int, params url.Values) (*Wall, error)

WallGet возвращает список записей со стены пользователя или сообщества. Для этого метода действует ограничение - 5000 вызовов в сутки на 1 аккаунт (токен).

count - количество записей, которое необходимо получить. Максимальное значение: 100.

func (*VKClient) WallGetByID

func (client *VKClient) WallGetByID(id string, params url.Values) (*Wall, error)

func (*VKClient) WallPost

func (client *VKClient) WallPost(ownerID int, message string, params url.Values) (int, error)

WallPost позволяет создать запись на стене, предложить запись на стене публичной страницы, опубликовать существующую отложенную запись.

Чтобы создать предложенную запись, необходимо передать в owner_id идентификатор публичной страницы, в которой текущий пользователь не является руководителем.

Для публикации предложенных и отложенных записей используйте параметр post_id, значение для которого можно получить методом wall.get с filter=suggests и postponed соответственно.

owner_id (int) - идентификатор пользователя или сообщества, на стене которого должна быть опубликована запись. Идентификатор сообщества в параметре owner_id необходимо указывать со знаком «-». Например, owner_id=-1 соответствует идентификатору сообщества ВКонтакте API (club1).

func (*VKClient) WallPostComment

func (client *VKClient) WallPostComment(ownerID int, postID int, message string, params url.Values) (int, error)

type VKGroupBot

type VKGroupBot struct {
	VKClient
	Group
	// contains filtered or unexported fields
}

func NewVKGroupBot

func NewVKGroupBot(token string, options *TokenOptions, limitrate bool) (*VKGroupBot, error)

func (*VKGroupBot) AddBotsLongpollCallback

func (client *VKGroupBot) AddBotsLongpollCallback(name string, f func(*BotsLongPollObject))

func (*VKGroupBot) DeleteBotsLongpollCallback

func (client *VKGroupBot) DeleteBotsLongpollCallback(name string)

func (*VKGroupBot) ListenBotsLongPollServer

func (client *VKGroupBot) ListenBotsLongPollServer()

func (*VKGroupBot) ListenBotsLongPollServerWithCancel

func (client *VKGroupBot) ListenBotsLongPollServerWithCancel(cancelCtx context.Context)

func (*VKGroupBot) SetCustomHTTPClient

func (c *VKGroupBot) SetCustomHTTPClient(client *http.Client)

type Video

type Video struct {
	ID            int                `json:"id"`
	OwnerID       int                `json:"owner_id"`
	UserID        int                `json:"user_id"`
	Title         string             `json:"title"`
	Duration      int                `json:"duration"`
	Description   string             `json:"description"`
	Date          int64              `json:"date"`
	Comments      int                `json:"comments"`
	Views         int                `json:"views"`
	Photo130      string             `json:"photo_130"`
	Photo320      string             `json:"photo_320"`
	Photo640      string             `json:"photo_640"`
	IsFavorite    bool               `json:"is_favorite"`
	AddingDate    int64              `json:"adding_date"`
	Player        string             `json:"player"`
	Platftorm     string             `json:"platform"`
	CanAdd        int                `json:"can_add"`
	CanComment    int                `json:"can_comment"`
	CanLike       int                `json:"can_like"`
	CanRepost     int                `json:"can_repost"`
	CanSubscribe  int                `json:"can_subscribe"`
	CanAddToFaves int                `json:"can_add_to_faves"`
	Image         []*VideoImage      `json:"image"`
	FirstFrame    []*VideoFirstFrame `json:"first_frame"`
	Type          string             `json:"type"`
	Likes         struct {
		UserLikes int `json:"user_likes"`
		Count     int `json:"count"`
	} `json:"likes"`
	Reposts struct {
		Count        int `json:"count"`
		UserReposted int `json:"user_reposted"`
	} `json:"reposts"`
	Files struct {
		External string `json:"external"`
		FLV_320  string `json:"mp4_320"`
		MP4_240  string `json:"mp4_240"`
		MP4_360  string `json:"mp4_360"`
		MP4_480  string `json:"mp4_480"`
		MP4_720  string `json:"mp4_720"`
		MP4_1080 string `json:"mp4_1080"`
	} `json:"files"`
}

type VideoAttachment

type VideoAttachment struct {
	ID            int           `json:"id"`
	OwnerID       int           `json:"owner_id"`
	Title         string        `json:"title"`
	Duration      int           `json:"duration"`
	Description   string        `json:"description"`
	Date          int64         `json:"date"`
	AddingDate    int64         `json:"adding_date"`
	Views         int           `json:"views"`
	Width         int           `json:"width"`
	Height        int           `json:"height"`
	Photo130      string        `json:"photo130"`
	Photo320      string        `json:"photo320"`
	Photo800      string        `json:"photo800"`
	FirstFrame320 string        `json:"first_frame_320"`
	FirstFrame160 string        `json:"first_frame_160"`
	FirstFrame130 string        `json:"first_frame_130"`
	FirstFrame800 string        `json:"first_frame_800"`
	Player        string        `json:"player"`
	CanEdit       int           `json:"can_edit"`
	CanAdd        int           `json:"can_add"`
	CanComment    int           `json:"can_comment"`
	CanLike       int           `json:"can_like"`
	CanRepost     int           `json:"can_repost"`
	CanSubscribe  int           `json:"can_subscribe"`
	CanAddToFaves int           `json:"can_add_to_faves"`
	AccessKey     string        `json:"access_key"`
	Image         []*VideoImage `json:"image"`
}

type VideoFirstFrame

type VideoFirstFrame struct {
	Url    string `json:"url"`
	Width  int    `json:"width"`
	Height int    `json:"height"`
}

type VideoImage

type VideoImage struct {
	Url         string `json:"url"`
	Width       int    `json:"width"`
	Height      int    `json:"height"`
	WithPadding int    `json:"with_padding"`
}

type Videos

type Videos struct {
	Count    int      `json:"count"`
	Videos   []*Video `json:"items"`
	Profiles []*User  `json:"profiles"`
	Groups   []*Group `json:"groups"`
}

type Wall

type Wall struct {
	Count    int         `json:"count"`
	Posts    []*WallPost `json:"items"`
	Profiles []*User     `json:"profiles"`
	Groups   []*Group    `json:"groups"`
}

type WallPost

type WallPost struct {
	ID           int                  `json:"id"`
	FromID       int                  `json:"from_id"`
	OwnerID      int                  `json:"owner_id"`
	ToID         int                  `json:"to_id"`
	Date         int64                `json:"date"`
	MarkedAsAd   int                  `json:"marked_as_ads"`
	IsPinned     int                  `json:"is_pinned"`
	PostType     string               `json:"post_type"`
	CopyPostDate int64                `json:"copy_post_date"`
	CopyPostType string               `json:"copy_post_type"`
	CopyOwnerID  int                  `json:"copy_owner_id"`
	CopyPostID   int                  `json:"copy_post_id"`
	CopyHistory  []*WallPost          `json:"copy_history"`
	CreatedBy    int                  `json:"created_by"`
	Text         string               `json:"text"`
	CanDelete    int                  `json:"can_delete"`
	CanPin       int                  `json:"can_pin"`
	Attachments  []*MessageAttachment `json:"attachments"`
	PostSource   *Source              `json:"post_source"`
	Comments     *Comment             `json:"comments"`
	Likes        *Like                `json:"likes"`
	Reposts      *Repost              `json:"reposts"`
	Online       int                  `json:"online"`
	ReplyCount   int                  `json:"reply_count"`
	SignerID     int                  `json:"signer_id"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL