Releases: SevereCloud/vksdk
v3.0.0
v2.17.0
What's Changed
- feat: using go 1.21
- docs: update links
- deps: update golang.org/x/text to v0.16.0
Full Changelog: v2.16.1...v2.17.0
v2.16.1
What's Changed
- feat(response): добавлена поддержка массива строк в тексте by @error-ident in #249
- Update board.go by @crossworth in #250
- fix panic while unmarshaling into
object.BaseLinkRating
by @RenCurs in #256
Full Changelog: v2.16.0...v2.16.1
v2.16.0
What's Changed
- feat: using go 1.18 by @SevereCloud in #235
- feat(api): add calls by @SevereCloud in #218
- Added PostponedID field to WallWallPost by @ostiwe in #225
- fix: StatsWallpostStat by @dshemin in #234
- fix: add field image_status by @ST380011A in #215
Full Changelog: v2.15.0...v2.16.0
v2.15.0
Changelog
31138d4 feat(api): add messages.startCall and messages.forceCallFinish
364b484 feat(api): add TestingGroup methods
4e5e665 feat(api): use Authorization Bearer
0cfb7ea feat(api): add ErrAuthAccessTokenHasExpired
b9dba27 feat(api): add ErrAuthAnonymousTokenIPMismatch
eee5f4c feat(vkapps): add Showcase Referral
2b5f8f2 fix(foaf): add ErrorStatusCode
v2.14.1
v2.14.0
Версия API в Callback и Bots Long Poll API
Теперь можно получить версию API в Callback и Bots Long Poll API с помощью функции events.VersionFromContext(ctx)
877a027 feat(event): add VersionFromContext
Прямые трансляции
Добавлены методы получения RTMP-адреса для трансляции видео и завершения трансляции
69e9790 feat: add video start & stop streaming
2ba1dab feat: add VideoLiveGetCategories
v2.13.1
v2.13.0
Поддержка MessagePack и zstd
Результат перехода с gzip (JSON) на zstd (msgpack):
- в 7 раз быстрее сжатие (–1 мкс);
- на 10% меньше размер данных (8 Кбайт вместо 9 Кбайт);
- продуктовый эффект не статзначимый :(
Как мы отказались от JPEG, JSON, TCP и ускорили ВКонтакте в два раза
VK API способно возвращать ответ в виде MessagePack. Это эффективный формат двоичной сериализации, похожий на JSON, только быстрее и меньше по размеру.
ВНИМАНИЕ, C MessagePack НЕКОТОРЫЕ МЕТОДЫ МОГУТ ВОЗВРАЩАТЬ СЛОМАННУЮ КОДИРОВКУ.
Для сжатия, вместо классического gzip, можно использовать zstd. Сейчас vksdk поддерживает zstd без словаря. Если кто знает как получать словарь, отпишитесь сюда.
vk := api.NewVK(os.Getenv("USER_TOKEN"))
method := "store.getStickersKeywords"
params := api.Params{
"aliases": true,
"all_products": true,
"need_stickers": true,
}
r, err := vk.Request(method, params) // Content-Length: 44758 byte
if err != nil {
log.Fatal(err)
}
log.Println("json:", len(r)) // json: 814231 byte
vk.EnableMessagePack() // enable MessagePack
vk.EnableZstd() // enable zstd
r, err = vk.Request(method, params) // Content-Length: 35755 byte
if err != nil {
log.Fatal(err)
}
log.Println("msgpack:", len(r)) // msgpack: 650775 byte
0ed3f0c feat: api support MessagePack
15a6084 feat: api support zstd
Авторизация используя VK ID
VK ID — это единая платформа для авторизации и регистрации пользователей в разных сервисах экосистемы VK.
Для получения данных о пользователя, с фронтенда передайте payload
// В onAuthData callback-функции в аргументе data будет содержаться
// информация об авторизации
const onAuthData = (data:VKUserVisibleAuthResult) => {
if (data.provider === "vk") {
fetch('/accessToken', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(data.payload)
});
}
console.log(data);
}
На бэкенде используйте json декодер.
func accessToken(w http.ResponseWriter, req *http.Request) {
var payload vkid.SilentAuthPayload
err := json.NewDecoder(req.Body).Decode(&payload)
...
}
Чтобы получить данные пользователя с помощью Silent token вызовите метод AuthGetProfileInfoBySilentToken
p := params.NewAuthGetProfileInfoBySilentTokenBuilder()
p.Add(payload.Token, payload.UUID, "click")
r, err := vk.AuthGetProfileInfoBySilentToken(p.Params)
Для получения Access token вызовите метод vk.AuthExchangeSilentAuthToken
p := params.NewAuthExchangeSilentAuthTokenBuilder()
p.Token(payload.Token)
p.UUID(payload.UUID)
r, err := vk.AuthExchangeSilentAuthToken(p.Params)
aaa7499 feat: add SilentAuthPayload
db2c8e7 feat: add AuthGetProfileInfoBySilentToken method
b286e3d feat: add AuthExchangeSilentAuthToken method
Разное
c58c2c9 feat: MessagesTemplateElementCarousel add PhotoID (#171)
04b056b Fix parsing {failed: 1} response (by @Delorus)
v2.12.0
Changelog
u := oauth.ImplicitFlowUser(oauth.UserParams{
ClientID: 6888183,
Scope: oauth.ScopeUserPhotos + oauth.ScopeUserDocs,
})
50871ad Add marusia push
push := marusia.Push{
PushText: "Hello, i am push",
Payload: payload,
}
bd2de0d Now go 1.16+
Fix
2e44a0d fix: PhotosSaveOwnerPhotoResponse.photo_src=false
47c4582 fix: BUG(VK): GroupsCountersGroup return []
See https://vk.com/bug341591
4917458 Fix passing callback requests without secret key (by @gaiaz-iusipov)
80326f2 refactor: change arg type in EventData(MessagesSendMessageEventAnswerBuilder) to interface{} (by @ZakharYA)
New errors
d7d8d41 add ErrMessagesPinExpiringMessage
5ac318f add ErrMessagesCantForwarded
New methods
0593eb5 VK.DefaultHandler make public
4297e6c GroupsLongPollServer add GetURL method
New constants
3a657ed vkapps add MobileIPad Platform
8f29374 vkapps add Widget Referral
990a87f vkapps add NotificationsAuto Referral
New fields
7ea3923 GroupsCountersGroup add Clips fields
5559c84 AccountAccountCounters add fields
db14df1 WallWallpost add fields
a814259 WidgetsWidgetComment add fields
4e2886e add WallWallpostHeader
d62e868 WallWallpost add Hash
45be342 VideoVideo add fields
16556dc Privacy update struct
ac6addf AccountInfo add VkPayEndpointV2
a887b39 MarketAddAlbumResponse add AlbumsCount
f4c4f07 AdsAccount add AdNetworkAllowedPotentially
e6c1227 add AdsMusician
18ec7d7 AppsApp add HasVkConnect
9745603 GroupsMarketInfo add MinOrderPrice
8825eeb WallWallpostToID add fields
f4f1a41 VideoVideo add fields
9cc563b StoriesStory add fields
6bde289 PhotosPhotoFull add OrigPhoto
c57525c MessagesChatPermissions add ChangeStyle
350db94 GroupsGroupSettings add fields
a4673aa GroupsGroup add Like
f4c5853 GroupsMarketInfo add IsHsEnabled
09630a7 MessagesMessage add MessageTag
bfb64f6 MessagesConversation add more fields