VKWebAppGetEmail
VKWebAppGetEmail
показывает окно с запросом доступа к адресу электронной почты пользователя.
Совет. Если вашему мини-приложению требуется запросить не только адрес электронной почты, но и номер телефона, вызовите карточку контактов.
Пример
bridge.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
. В качестве ответа платформа возвращает объект со следующими полями:
Поле | Тип | Описание |
---|---|---|
email | string | Адрес электронной почты пользователя. |
sign | string | Подпись полученных данных. |
Если при обращении к платформе произошла ошибка, управление передаётся в метод catch
. В качестве ответа платформа возвращает объект с информацией об ошибке, общий для всех событий VK Bridge.
События
VKWebAppGetEmailResult
Сигнализирует, что доступ к электронной почте получен. В обработчик события на стороне пользователя передаются следующие данные:
{
detail: {
type: "VKWebAppGetEmailResult",
data: {
email: "persik_ryzhiy@mail.ru",
sign: "lY_KLjwfRmx9X1_z4iowRz1pTKHL98PW-14XURLWKYI"
}
}
}
Передаваемый объект подобен объекту, возвращаемому при успешном выполнении промиса.
VKWebAppGetEmailFailed
Информирует об ошибке, которая произошла при взаимодействии с платформой.
В обработчик события на стороне пользователя передаётся объект с информацией об ошибке, общий для всех методов VK Bridge.
Пример обработки событий
Смотрите раздел Обработка событий-результатов.
Вычисление подписи
Для подписи последовательно объединяются значения:
- •Идентификатор мини-приложения
app_id
. - •Защищённый ключ
api_secret
. - •Идентификатор пользователя
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
:
$sign = rtrim(strtr(base64_encode(hash('sha256', '7770000W7kVvxVxZ4162447emailtest@gmail.com', true)), '+/', '-_'), '=');