npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@happysanta/vk-apps-sdk

v3.0.17

Published

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

Downloads

52

Readme

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