
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
@happysanta/vk-apps-sdk
Advanced tools
npm i @happysanta/vk-apps-sdk
npm i @vkontakte/vk-connect
import VkSdk from "@happysanta/vk-apps-sdk"
все методы VkSdk за исключением send возвращают ошибку типа VkSdkError, ее можон получить функцией castToError
Вызов метода vk api с запросом прав на токен.
Этот метод сам запросит права через getAuthToken с указаным scope и перезапросит токен если ip поменяется
в случае ошибок вернет объект ошибку типа VkSdkError
с полями
message
stringcode
number код ошибкиtype
string одна из констант VkSdkError.UNKNOWN_TYPE|VkSdkError.CLIENT_ERROR|VkSdkError.API_ERROR|VkSdkError.NETWORK_ERROR|VkSdkError.ACCESS_ERROR
Запрос может быть отправлен повторно если апи вк вернет один из следующих кодов
Чобы отключить это поведение передайте 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: "Супер неизвестная ошибка"
})
}
})
Возвращает объект с параметрами запуска приложения
VkSdk.getStartParams()
Инициализация VK Connect
Первое событие, которое Ваше приложение должно отправить официальному приложению, чтобы начать работу с VK Connect.
В противном случае сервис может не работать на мобильных клиентах iOS и Android.
VkSdk.init()
Подписаться на соббытие VkConnect @param {string} event - Тип события VkConnect @param {function} callback - колбек
VkSdk.subscribeEvent(event, callback)
Отписаться от соббытия VkConnect @param {string} event - Тип события VkConnect @param {function} callback - колбек
VkSdk.unsubscribeEvent(event, callback)
Возвращает объект для запроса в VkConnect @param command - Команда в VkConnect @param params - параметры запроса @param successEvent - колбек при успешном выполнении @param failEvent - колбек при неуспешном выполнении @returns {VkConnectRequest}
VkSdk.getRequest(command, params, successEvent, failEvent)
Получение данных профиля
Позволяет получить основные данные о профиле текущего пользователя.
@returns {Promise}
VkSdk.getUserInfo()
Получение номера телефона
позволяет получить номер телефона текущего пользователя.
Официальное приложение отображает экран с запросом разрешения пользователя на передачу его номера телефона в приложение.
@returns {Promise}
VkSdk.getPhoneNumber()
Получение e-mail
Позволяет получить адрес электронной почты пользователя.
После вызова отображает экран с запросом прав на доступ к e-mail.
@returns {Promise}
VkSdk.getEmail()
Получение геопозиции
Позволяет получить данные о геопозиции пользователя. Событие не принимает параметров.
Официальное приложение показывает окно с запросом разрешения на передачу местоположения.
@returns {Promise}
VkSdk.getGeodata()
Выбор контакта из телефонной книги
Открывает окно выбора контактов из телефонной книги на устройстве пользователя.
@returns {Promise}
VkSdk.openContacts()
Авторизация пользователя
Позволяет запросить права доступа у пользователя и получить ключ для работы с API.
Для получения токена без дополнительных прав передайте в параметре пустую строку.
@param {string} scope - Список прав доступа, перечисленных через запятую. Список прав
@returns {Promise}
VkSdk.getAuthToken(scope)
Вызов методов API
Позволяет получить результат вызова метода API ВКонтакте.
Обратите внимание, что для работы с API нужно передать ключ доступа пользователя с соответствующими правами,
полученный с помощью VKWebAppGetAuthToken
@param {string} method - название метода API. Список методов
@param {Object} params - параметры метода в виде JSON
@param {string} requestId - произвольная строка, которая вернётся вместе с результатом запроса.
Используйте requestId для отслеживания уникальности запросов.
@returns {Promise}
VkSdk.callAPIMethod(method, params, requestId)
Вызов диалога Share
Позволяет поделиться ссылкой
@returns {Promise}
VkSdk.share(link)
Публикация записей на стене
@param {Object} params - См. описание метода wall.post
Позволяет пользователю опубликовать запись на стене
@returns {Promise}
VkSdk.showWallPostBox(params)
Получение версии официального приложения
Возвращает номер версии официального приложения ВКонтакте.
@returns {Promise}
VkSdk.getClientVersion()
Платёж 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)
Включение уведомлений
Позволяет запросить у пользователя разрешение на отправку уведомлений от приложения.
@returns {Promise}
VkSdk.allowNotifications()
Выключение уведомлений
Позволяет отключить уведомления от приложения.
@returns {Promise}
VkSdk.denyNotifications()
Установка хэша
Позволяет установить новое значение хэша
@returns {Promise}
VkSdk.setLocation(location)
Подписка на сообщения сообщества
Позволяет запросить у пользователя разрешение на отправку сообщений от имени сообщества.
@param {int} groupId - идентификатор сообщества
@param {string} key - произвольная строка. Этот параметр можно использовать для идентификации пользователя.
Его значение будет возвращено в событии message_allow Callback API.
@returns {Promise}
VkSdk.allowMessagesFromGroup(groupId, key)
Вступление в сообщество
Позволяет пользователю вступить в сообщество.
@param {int} groupId - идентификатор сообщества
@returns {Promise}
VkSdk.joinGroup(groupId)
Сканирование QR-кода
Позволяет открыть камеру для считывания QR-кода и получить результат сканирования.
@returns {Promise}
VkSdk.openQR()
Открытие другого приложения
@param {int} appId - идентификатор приложения, которое должно быть открыто
@param {string} location - хэш, строка после # в URL вида https://vk.com/app123456#
@returns {Promise}
VkSdk.openApp(appId, location)
Изменение внешнего вида клиента
Клиент устанавливает тему для иконок в статус-баре исходя из параметра
status_bar_style и цвет статус-бара исходя из параметра action_bar_color.
@param {string} statusBarStyle - тема для иконок статус-бара. Возможные варианты: "light", "dark"
@param {string} actionBarColor - цвет экшн-бара. Возможные варианты: hex-код (#00ffff), "none" - прозрачный.
Параметр работает только на Android
@returns {Promise}
VkSdk.setViewSettings(statusBarStyle, actionBarColor)
Прокрутка окна приложения
Инициирует скроллинг окна браузера по вертикали.
@param {int} top - смещение скролла относительно нулевой координаты окна. Верх страницы: top === 0
@param {int} speed
@returns {Promise}
VkSdk.scroll(top, speed)
Изменение размеров окна приложения
Инициирует изменение ширины и высоты элемента IFrame.
@param {int} width - ширина окна. Может принимать значения от 600px до 1000px
@param {int} height - высота окна. Может принимать значения от 500px до 4050px.
@returns {Promise}
VkSdk.resizeWindow(width, height)
Вызов карточки контактов
«Карточка контактов» — это то место, где пользователь указывает контактные данные (номер телефона, адрес, e-mail),
которыми он готов поделиться с сервисами сторонних разработчиков.
@param {array} type - массив строк. Возможные значения: phone, email, address
@returns {Promise}
VkSdk.getPersonalCard(type)
Обновить код, в package.json изменить версию, затем:
$ npm adduser // нужно, если пользователь не авторизован
$ npm whoami // проверить авторизован ли пользователь
$ npm publish --access public // если пакет не приватный, иначе не опубликуется
MIT.
FAQs
Обёртка над @vkontakte/vk-bridge
The npm package @happysanta/vk-apps-sdk receives a total of 6 weekly downloads. As such, @happysanta/vk-apps-sdk popularity was classified as not popular.
We found that @happysanta/vk-apps-sdk demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
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.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.