Socket
Book a DemoInstallSign in
Socket

@happysanta/vk-apps-sdk

Package Overview
Dependencies
Maintainers
3
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@happysanta/vk-apps-sdk

Обёртка над @vkontakte/vk-bridge

latest
Source
npmnpm
Version
3.0.17
Version published
Maintainers
3
Created
Source

@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.

Keywords

vkapps

FAQs

Package last updated on 11 Feb 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts