3.0.17 • Published 3 years ago

@happysanta/vk-apps-sdk v3.0.17

Weekly downloads
88
License
MIT
Repository
github
Last release
3 years ago

@happysanta/vk-apps-sdk

Установка

npm i @happysanta/vk-apps-sdk
npm i @vkontakte/vk-connect
import VkSdk from "@happysanta/vk-apps-sdk"

Методы

все методы VkSdk за исключением send возвращают ошибку типа VkSdkError, ее можон получить функцией castToError

api

Вызов метода vk api с запросом прав на токен. Этот метод сам запросит права через getAuthToken с указаным scope и перезапросит токен если ip поменяется в случае ошибок вернет объект ошибку типа VkSdkError с полями

  • message string
  • code number код ошибки
  • type string одна из констант VkSdkError.UNKNOWN_TYPE|VkSdkError.CLIENT_ERROR|VkSdkError.API_ERROR|VkSdkError.NETWORK_ERROR|VkSdkError.ACCESS_ERROR

Запрос может быть отправлен повторно если апи вк вернет один из следующих кодов

  • 1 VK_API_UNKNOWN_ERROR, //Произошла неизвестная ошибка.
  • 6 VK_API_TOO_MANY_REQUEST, //Слишком много запросов в секунду.
  • 9 VK_API_TOO_MANY_SAME_ACTIONS, //Слишком много однотипных действий.

Чобы отключить это поведение передайте retry аргумент равный 0

Приимер использования с обработкой ошибок

/**
 * Вызов методов API с запросов токена если нужно
 * Позволяет получить результат вызова метода API ВКонтакте.
 * @param {string} method - название метода API. {@url https://vk.com/dev/methods}
 * @param {Object} params - параметры метода в виде JSON
 * @param {string|null} scope - права необходимые для этого запроса, через запятую
 * @param {Number} retry - допустимое количество повторов которое можно сделать если с первого раза не получится
 * @throws VkSdkError
 * @returns {Promise<Object>}
 */
VkSdk.api("users.get", {}, "friends")
.then(({response}) => {

})
.catch(e => {
    switch (e.type) {
        case VkSdkError.NETWORK_ERROR:
            return this.setState({
                error: "Ошибка сети"
            })

        case VkSdkError.ACCESS_ERROR:
            return this.setState({
                error: "Не выдан достп или вы отредактировали доступы"
            })

        case VkSdkError.API_ERROR:
            return this.setState({
                error: "Ошибка апи: "+e.message +' '+e.code
            })
/// Следующие типы ошибок никогда не должны быть показаны, но теоритически возможны 
        case VkSdkError.CLIENT_ERROR:
            return this.setState({
                error: "Не известная ошибка от вк коннект: "+e.message +' '+e.code
            })
        case VkSdkError.UNKNOWN_TYPE:
            return this.setState({
                error: "Не известная ошибка от неисзвестно чего: "+e.message +' '+e.code
            })
        default:
            return this.setState({
                error: "Супер неизвестная ошибка"
            })
    }
})

getStartParams

Возвращает объект с параметрами запуска приложения

VkSdk.getStartParams()

init

Инициализация VK Connect Первое событие, которое Ваше приложение должно отправить официальному приложению, чтобы начать работу с VK Connect. В противном случае сервис может не работать на мобильных клиентах iOS и Android.

VkSdk.init()

subscribeevent

Подписаться на соббытие VkConnect @param {string} event - Тип события VkConnect @param {function} callback - колбек

VkSdk.subscribeEvent(event, callback)

unsubscribeevent

Отписаться от соббытия VkConnect @param {string} event - Тип события VkConnect @param {function} callback - колбек

VkSdk.unsubscribeEvent(event, callback)

getrequest

Возвращает объект для запроса в VkConnect @param command - Команда в VkConnect @param params - параметры запроса @param successEvent - колбек при успешном выполнении @param failEvent - колбек при неуспешном выполнении @returns {VkConnectRequest}

VkSdk.getRequest(command, params, successEvent, failEvent)

getUserInfo

Получение данных профиля Позволяет получить основные данные о профиле текущего пользователя. @returns {Promise}

VkSdk.getUserInfo()

getPhoneNumber

Получение номера телефона позволяет получить номер телефона текущего пользователя. Официальное приложение отображает экран с запросом разрешения пользователя на передачу его номера телефона в приложение. @returns {Promise}

VkSdk.getPhoneNumber()

getEmail

Получение e-mail Позволяет получить адрес электронной почты пользователя. После вызова отображает экран с запросом прав на доступ к e-mail. @returns {Promise}

VkSdk.getEmail()

getGeodata

Получение геопозиции Позволяет получить данные о геопозиции пользователя. Событие не принимает параметров. Официальное приложение показывает окно с запросом разрешения на передачу местоположения. @returns {Promise}

VkSdk.getGeodata()

openContacts

Выбор контакта из телефонной книги Открывает окно выбора контактов из телефонной книги на устройстве пользователя. @returns {Promise}

VkSdk.openContacts()

getAuthToken

Авторизация пользователя Позволяет запросить права доступа у пользователя и получить ключ для работы с API. Для получения токена без дополнительных прав передайте в параметре пустую строку. @param {string} scope - Список прав доступа, перечисленных через запятую. Список прав @returns {Promise}

VkSdk.getAuthToken(scope)

callAPIMethod

Вызов методов API Позволяет получить результат вызова метода API ВКонтакте. Обратите внимание, что для работы с API нужно передать ключ доступа пользователя с соответствующими правами, полученный с помощью VKWebAppGetAuthToken @param {string} method - название метода API. Список методов @param {Object} params - параметры метода в виде JSON @param {string} requestId - произвольная строка, которая вернётся вместе с результатом запроса. Используйте requestId для отслеживания уникальности запросов. @returns {Promise}

VkSdk.callAPIMethod(method, params, requestId)

share

Вызов диалога Share Позволяет поделиться ссылкой @returns {Promise}

VkSdk.share(link)

showWallPostBox

Публикация записей на стене @param {Object} params - См. описание метода wall.post Позволяет пользователю опубликовать запись на стене @returns {Promise}

VkSdk.showWallPostBox(params)

getClientVersion

Получение версии официального приложения Возвращает номер версии официального приложения ВКонтакте. @returns {Promise}

VkSdk.getClientVersion()

openPayForm

Платёж VK Pay Поднимает экран VK Pay для платежа @param {string} action - pay-to-service|pay-to-user|pay-to-group @param {Object} params - параметры платёжной формы VK Pay @returns {Promise}

VkSdk.openPayForm(action, params)

allowNotifications

Включение уведомлений Позволяет запросить у пользователя разрешение на отправку уведомлений от приложения. @returns {Promise}

VkSdk.allowNotifications()

denyNotifications

Выключение уведомлений Позволяет отключить уведомления от приложения. @returns {Promise}

VkSdk.denyNotifications()

setLocation

Установка хэша Позволяет установить новое значение хэша @returns {Promise}

VkSdk.setLocation(location)

allowMessagesFromGroup

Подписка на сообщения сообщества Позволяет запросить у пользователя разрешение на отправку сообщений от имени сообщества. @param {int} groupId - идентификатор сообщества @param {string} key - произвольная строка. Этот параметр можно использовать для идентификации пользователя. Его значение будет возвращено в событии message_allow Callback API. @returns {Promise}

VkSdk.allowMessagesFromGroup(groupId, key)

joinGroup

Вступление в сообщество Позволяет пользователю вступить в сообщество. @param {int} groupId - идентификатор сообщества @returns {Promise}

VkSdk.joinGroup(groupId)

openQR

Сканирование QR-кода Позволяет открыть камеру для считывания QR-кода и получить результат сканирования. @returns {Promise}

VkSdk.openQR()

openApp

Открытие другого приложения @param {int} appId - идентификатор приложения, которое должно быть открыто @param {string} location - хэш, строка после # в URL вида https://vk.com/app123456# @returns {Promise}

VkSdk.openApp(appId, location)

setViewSettings

Изменение внешнего вида клиента Клиент устанавливает тему для иконок в статус-баре исходя из параметра status_bar_style и цвет статус-бара исходя из параметра action_bar_color. @param {string} statusBarStyle - тема для иконок статус-бара. Возможные варианты: "light", "dark" @param {string} actionBarColor - цвет экшн-бара. Возможные варианты: hex-код (#00ffff), "none" - прозрачный. Параметр работает только на Android @returns {Promise}

VkSdk.setViewSettings(statusBarStyle, actionBarColor)

scroll

Прокрутка окна приложения Инициирует скроллинг окна браузера по вертикали. @param {int} top - смещение скролла относительно нулевой координаты окна. Верх страницы: top === 0 @param {int} speed @returns {Promise}

VkSdk.scroll(top, speed)

resizeWindow

Изменение размеров окна приложения Инициирует изменение ширины и высоты элемента IFrame. @param {int} width - ширина окна. Может принимать значения от 600px до 1000px @param {int} height - высота окна. Может принимать значения от 500px до 4050px. @returns {Promise}

VkSdk.resizeWindow(width, height)

getPersonalCard

Вызов карточки контактов «Карточка контактов» — это то место, где пользователь указывает контактные данные (номер телефона, адрес, e-mail), которыми он готов поделиться с сервисами сторонних разработчиков. @param {array} type - массив строк. Возможные значения: phone, email, address @returns {Promise}

VkSdk.getPersonalCard(type)

Как обновить пакет в npm

Обновить код, в package.json изменить версию, затем:

$ npm adduser // нужно, если пользователь не авторизован
$ npm whoami // проверить авторизован ли пользователь
$ npm publish --access public // если пакет не приватный, иначе не опубликуется

License

MIT.

3.0.17

3 years ago

3.0.16

3 years ago

3.0.15

3 years ago

3.0.14

3 years ago

3.0.13

4 years ago

3.0.12

4 years ago

3.0.10

4 years ago

3.0.11

4 years ago

3.0.9

4 years ago

3.0.8

4 years ago

3.0.7

4 years ago

3.0.6

4 years ago

3.0.5

4 years ago

3.0.4

4 years ago

3.0.3

4 years ago

3.0.2

4 years ago

3.0.1

4 years ago

2.0.7

4 years ago

3.0.0

4 years ago

2.0.6

4 years ago

2.0.5

4 years ago

2.0.4

4 years ago

2.0.3

4 years ago

2.0.2

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago