@Ivanov_Taras

Telegram bot: как получить номер телефона из полученного контакта?

Привет, комьюнити QNA Habr! Я сейчас делаю Telegram бота на PHP 5.6 Сделал уже большую часть требуемого функционала. На данный момент мне нужно получить номер телефона из пересланного боту контакта. Вот часть кода, который запрашивает контакт через кнопку:
$text_return = "Отлично! Поделитесь номером телефона нажав на кнопку";
            $replyMarkup = array('keyboard'=>array('text'=>"Send phone",'request_contact'=>true));
            $replyMarkup = array(
                'keyboard' => array(
                    array(array('text'=>"Send phone",'request_contact'=>true))
                )
            );
            $encodedMarkup = json_encode($replyMarkup);
            message_to_telegram($bot_token, $chat_id, $text_return, $encodedMarkup);

Вот, как это выглядит в самом Telegram:
628cfe5e05974420539501.png
628d0081f0bd6514063291.png
Проблема заключается в том, что не получается изъять этот номер телефона. Я пытался делать самостоятельно, но безуспешно:
$data = file_get_contents('php://input'); // весь ввод перенаправляем в $data
$data = json_decode($data, true); // декодируем json-закодированные-текстовые данные в PHP-массив


// Основной код: получаем сообщение, что юзер отправил боту и 
// заполняем переменные для дальнейшего использования
if (!empty($data['message']['text'])) {
    $chat_id = $data['message']['from']['id'];
    $user_name = $data['message']['from']['username'];
    $first_name = $data['message']['from']['first_name'];
    $last_name = $data['message']['from']['last_name'];
    $user_phone = $data["message"]["contact"]["phone_number"];
    $text = trim($data['message']['text']);
    $text_array = explode(" ", $text);

Хочу заметить, что все работает нормально, кроме самого $user_phone Номер телефонна должен отправляться пользователю (сделано для проверки работы), что не происходит:
elseif (!empty($user_phone)) {
    message_to_telegram($bot_token, $chat_id, $user_phone);
}

Я полдня лазил по документации, разным форумам. Ничего стоящего не нашёл. Буду рад, если поможете решить эту проблему.
  • Вопрос задан
  • 1665 просмотров
Решения вопроса 1
@Ivanov_Taras Автор вопроса
Проблема была решена частично. Номер телефона отправляется только если ответить на сообщение с пересланным контактом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы