@TimDoor

Есть код бота Telegram php, но почему не работает?

Доброго времени суток! Нужна помощь. Я не так долго занимаюсь этим языком, поэтому есть вопросы и, может, несколько глупые. Есть готовый код бота Telegram php. Есть локальный (как я понимаю) сервер с адресом "https://api.telegram.org/bot"мой токен"/getUpdates". Проверил. Ответные результаты с диалога с ботом приходят. Но я не понимаю, чего еще я не привязал или не синхронизировал, раз я не получаю самое элементарное: ответ на /start. Библиотека скачана и установлена.
include('vendor/autoload.php'); 
    use Telegram\Bot\Api; 

    $telegram = new Api('мойтокен'); 
    $result = $telegram -> getWebhookUpdates();
    
    $text = $result["message"]["text"];
    $chat_id = $result["message"]["chat"]["id"]; 
    $name = $result["message"]["from"]["username"]; 
    $keyboard = [["Последние статьи"],["Картинка"]]; 

    if($text){
         if ($text == "/start") {
            $reply = "Добро пожаловать в бота!";
            $reply_markup = $telegram->replyKeyboardMarkup([ 'keyboard' => $keyboard, 'resize_keyboard' => true, 'one_time_keyboard' => false ]);
            $telegram->sendMessage([ 'chat_id' => $chat_id, 'text' => $reply, 'reply_markup' => $reply_markup ]);

        }elseif ($text == "/help") {
            $reply = "Информация с помощью.";
            $telegram->sendMessage([ 'chat_id' => $chat_id, 'text' => $reply ]);

        }elseif ($text == "Картинка") {
            $url = "https://68.media.tumblr.com/6d830b4f2c455f9cb6cd4ebe5011d2b8/tumblr_oj49kevkUz1v4bb1no1_500.jpg";
            $telegram->sendPhoto([ 'chat_id' => $chat_id, 'photo' => $url, 'caption' => "Описание." ]);

        }elseif ($text == "Последние статьи") {
            $html=simplexml_load_file('http://netology.ru/blog/rss.xml');
            foreach ($html->channel->item as $item) {
	     $reply .= "\xE2\x9E\xA1 ".$item->title." (<a href='".$item->link."'>читать</a>)\n";
        	}
            $telegram->sendMessage([ 'chat_id' => $chat_id, 'parse_mode' => 'HTML', 'disable_web_page_preview' => true, 'text' => $reply ]);

        }else{
        	$reply = "По запросу \"<b>".$text."</b>\" ничего не найдено.";
        	$telegram->sendMessage([ 'chat_id' => $chat_id, 'parse_mode'=> 'HTML', 'text' => $reply ]);
        }

    }else{
    	$telegram->sendMessage([ 'chat_id' => $chat_id, 'text' => "Отправьте текстовое сообщение." ]);
    }
  • Вопрос задан
  • 229 просмотров
Пригласить эксперта
Ответы на вопрос 2
@P747
Попробуйте провардампить переменную "$text", чтобы увидеть что ей присваивается
var_dump($text);
Ответ написан
Комментировать
@art055
(isset($result['callback_query']))вам ещё такое нужно, пишу с телефона не удобно подробнее, поищите есть примеры , то есть то что идёт готовым для нажатия ,она как команда возвращается в collback_query
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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