VKWebAppGetPhoneNumber
VKWebAppGetPhoneNumber
показывает окно с запросом доступа к номеру телефона пользователя.
Совет. Если вам требуется запросить не только номер телефона, но и адрес электронной почты, используйте вызов карточки контактов.
Пример
bridge.send('VKWebAppGetPhoneNumber')
.then((data) => {
if (data.phone_number) {
// Номер телефона получен
}
})
.catch((error) => {
// Ошибка
console.log(error);
});
Платформы
Android, iOS, Web
Параметры
—
Результат
Проверить результат можно:
- •
Используя объект
Promise
, который возвращается вызовомbridge.send(...)
. - •
С помощью событий
VKWebAppGetPhoneNumberResult
иVKWebAppGetPhoneNumberFailed
.
Подробнее о проверке результатов при вызовах VK Bridge.
Возможные ошибки:
- •
This action cannot be performed in the background
, если мини-приложение запущено в фоновом режиме. - •
User denied
, если пользователь запретил доступ к номеру телефона.
Объект Promise
Если обращение к платформе прошло успешно, управление будет передано в then
-обработчик объекта Promise
. В качестве ответа платформа возвращает объект со следующими полями:
Поле | Тип | Описание |
---|---|---|
phone_number | string | Номер телефона пользователя. |
sign | string | Подпись полученных данных. |
Если при обращении к платформе произошла ошибка, управление передаётся в метод catch
. В качестве ответа платформа возвращает объект с информацией об ошибке, общий для всех событий VK Bridge.
События
VKWebAppGetPhoneNumberResult
Сигнализирует, что номер телефона получен. В обработчик события на стороне пользователя передаются следующие данные:
{
detail: {
type: "VKWebAppGetPhoneNumberResult",
data: {
sign: "YdUTMy8uAmFXUqzMsAUjYFTZ1cUfhRJBpTjmqgZBCtg",
phone_number: "79111234567"
}
}
}
Передаваемый объект подобен объекту, возвращаемому при успешном выполнении промиса.
VKWebAppGetPhoneNumberFailed
Информирует об ошибке, которая произошла при взаимодействии с платформой.
В обработчик события на стороне пользователя передаётся объект с информацией об ошибке, общий для всех методов 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 = phone_number
, field_value = 70000000000
:
$sign = rtrim(strtr(base64_encode(hash('sha256', '7770000W7kVvxVxZ4162447phone_number70000000000', true)), '+/', '-_'), '=');