Skip to content

Releases: SevereCloud/vksdk

v3.0.1

11 Jan 21:33
Compare
Choose a tag to compare

What's Changed

Full Changelog: v3.0.0...v3.0.1

v3.0.0

14 Jul 14:45
Compare
Choose a tag to compare

BREAKING CHANGE

Version API 5.199

Full Changelog: v2.16.1...v3.0.0

v2.17.0

02 Jul 08:12
Compare
Choose a tag to compare

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

03 Oct 11:49
05e393f
Compare
Choose a tag to compare

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

02 Mar 19:45
59827ec
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.15.0...v2.16.0

v2.15.0

17 Jul 12:17
Compare
Choose a tag to compare

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

13 Jun 14:58
Compare
Choose a tag to compare

842f06e fix: BanInfo is reference type (fixed #199)
21e68d9 fix: CanDownload is int (fixed #201)

v2.14.0

08 Apr 12:28
10f505f
Compare
Choose a tag to compare

Версия API в Callback и Bots Long Poll API

Теперь можно получить версию API в Callback и Bots Long Poll API с помощью функции events.VersionFromContext(ctx)

877a027 feat(event): add VersionFromContext

Пост ВКонтакте API

Прямые трансляции

Добавлены методы получения RTMP-адреса для трансляции видео и завершения трансляции

69e9790 feat: add video start & stop streaming
2ba1dab feat: add VideoLiveGetCategories

Блог VK о API прямых трансляций

v2.13.1

02 Feb 09:26
Compare
Choose a tag to compare

Changelog

932998f fix: close zstd Reader

v2.13.0

24 Jan 13:06
64932fd
Compare
Choose a tag to compare

Поддержка 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)