Всем привет!
Делаю бота для телеграм. Серверная часть - на yii2. Суть такова - при отправке пользователем боту команды /start - бот должен предложить выбрать язык (inline keyboard). Юзаю webhook.
Проблема заключается в том, что бот отправляет кнопки выбора языка бесконечное множество раз. Я выяснил, что это связано с тем, что
API сервер не получает header 200 OK и считает, что сообщение не доставлено.
КАК ПРАВИЛЬНО ОТПРАВЛЯТЬ СООБЩЕНИЯ С ПОМОЩЬЮ БОТА? Точнее, как передать этот хедер чтобы API телеграмма "понял" что сообщение доставлено?
Мой рукописный класс для работы с ботами:
class Telegram {
public $token;
const BASE_API_URL = 'https://api.telegram.org/bot' ;
function __construct($token) {
$this->token = $token;
}
public function sendMessage($chatID, $message, $reply_markup) {
$url = self::BASE_API_URL.$this->token."/sendMessage?chat_id=".$chatID;
$url = $url."&text=".urlencode($message);
if($reply_markup) {
$url = $url."&reply_markup=".$reply_markup;
}
$ch = curl_init();
$optArray = array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['HTTP/1.1 200 OK']
);
curl_setopt_array($ch, $optArray);
$result = curl_exec($ch);
curl_close($ch);
}
}