Skip to content

Миграция до v2

Daniil Suvorov edited this page Sep 4, 2020 · 8 revisions

О новых функциях, можно прочитать на странице релиза

Функции конструкторы

  • Все функции Init удалены
  • New... функции возвращают указатель
  • Удален api.NewVKWithPool, можно пользоваться api.NewVK(token ...string) (лимит указывается только на один токен)
  • Longpoll переименован в LongPoll

API

Версия VK API обновлена с 5.103 до 5.122.

Ошибки

Все ошибки переработаны для работы с Go 1.13

API

  • object.Error, заменен на api.Error
  • Отказ от github.com/pkg/errors
  • Все ошибки из api/errors в api (файл errors.go)
  • Коды ошибок теперь имеют префикс Err
  • Поддержка errors.Is и errors.As из 1.13
if errors.Is(err, api.ErrAuth) {
	// ошибка авторизации
}
var e *api.Error
if errors.As(err, &e) {
	log.Printf("Ошибка с кодом %d\n", e.Code)
}
  • новый тип ошибки для execute api.ExecuteError
  • новый тип ошибки для методов загрузки api.UploadError
  • новый тип ошибки для неверного ответа от сервера api.InvalidContentType

Streaming

  • Отказ от github.com/pkg/errors
  • Коды ошибок теперь имеют префикс Err
  • Поддержка errors.Is и errors.As из 1.13

События

  • типы для событий были перенесены из object в events
  • все функции должны передавать ctx context.Context
  • groupID, eventID, ts теперь передаются через контекст
groupID := events.GroupIDFromContext(ctx)
eventID := events.EventIDFromContext(ctx)
ts := longpoll.TsFromContext(ctx)

Разное

Клавиатура

  • У методов клавиатуры аргумент payload теперь interface{}

Теперь аргумент payload у методов MessagesKeyboard имеет тип interface{} вместо string. Если json.Marshal не сможет обработать payload возникнет паника.

  • New... функции возвращают указатель

NewMessagesKeyboard и NewMessagesKeyboardInline теперь возвращают *MessagesKeyboard

Clone this wiki locally