Данный сайт является КЛОНОМ оффициальной документации dev.vk.com
Настоятельно рекомендуется воздержаться от ввода личной информации.
Сайт создан на случай падения оффициальной документации.

Дата создания: 13.11.2022

VKWebAppGetEmail

VKWebAppGetEmail показывает окно с запросом доступа к адресу электронной почты пользователя.

Совет. Если вашему мини-приложению требуется запросить не только адрес электронной почты, но и номер телефона, вызовите карточку контактов.

Пример

JavaScriptbridge.send('VKWebAppGetEmail') .then((data) => { if (data.email) { // Доступ к электронной почте получен } }) .catch((error) => { // Ошибка console.log(error); });

Платформы

Android, iOS, Web

Параметры

Результат

Проверить результат можно:

  • Используя объект Promise, который возвращается вызовом bridge.send(...).

  • С помощью событий VKWebAppGetEmailResult и VKWebAppGetEmailFailed.

Подробнее о проверке результатов при вызовах VK Bridge.

Возможные ошибки:

  • This action cannot be performed in the background, если мини-приложение запущено в фоновом режиме.
  • User denied, если пользователь запретил доступ к адресу электронной почты.

Объект Promise

Если обращение к платформе прошло успешно, управление будет передано в then-обработчик объекта Promise. В качестве ответа платформа возвращает объект со следующими полями:

ПолеТипОписание
emailstringАдрес электронной почты пользователя.
signstringПодпись полученных данных.

Если при обращении к платформе произошла ошибка, управление передаётся в метод catch. В качестве ответа платформа возвращает объект с информацией об ошибке, общий для всех событий VK Bridge.

События

VKWebAppGetEmailResult

Сигнализирует, что доступ к электронной почте получен. В обработчик события на стороне пользователя передаются следующие данные:

JavaScript{ detail: { type: "VKWebAppGetEmailResult", data: { email: "persik_ryzhiy@mail.ru", sign: "lY_KLjwfRmx9X1_z4iowRz1pTKHL98PW-14XURLWKYI" } } }

Передаваемый объект подобен объекту, возвращаемому при успешном выполнении промиса.

VKWebAppGetEmailFailed

Информирует об ошибке, которая произошла при взаимодействии с платформой.

В обработчик события на стороне пользователя передаётся объект с информацией об ошибке, общий для всех методов VK Bridge.

Пример обработки событий

Смотрите раздел Обработка событий-результатов.

Вычисление подписи

Для подписи последовательно объединяются значения:

  • Идентификатор мини-приложения app_id.
  • Идентификатор пользователя user_id.
  • Пара $field_name.$field_value, вернувшаяся в событии.

От полученной после объединения строки вычисляется криптографический хеш SHA256 в байтовом представлении, затем хеш кодируется с помощью алгоритма Base64 Encode.

Пример формирования подписи события на PHP, где app_id = 7770000, api_secret = W7kVvxVxZ4, user_id = 162447, field_name = email, field_value = test@gmail.com:

PHP$sign = rtrim(strtr(base64_encode(hash('sha256', '7770000W7kVvxVxZ4162447emailtest@gmail.com', true)), '+/', '-_'), '=');

Песочница

VKWebAppGetEmail