Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Скажите, пожалуйста, есть ли у кого-то опыт создания Телеграм бота на telegram-bot-sdk 3.0.0?
Я не могу получить 'chat_id'.
И не знаю, как сообщить серверу Телеграм, что я уже получил от него сообщения. А то мой бот без остановки шлёт мне ответы на мою команду.
Не в сети
Из реального проекта вырезка кода. Пробуйте, документацию почитайте
class BotApi
{
protected $botToken;
protected $httpUrl;
protected $client;
/** @var Api */
protected $api;
/**
* BotApi constructor.
* @throws \Telegram\Bot\Exceptions\TelegramSDKException
*/
public function __construct()
{
$this->botToken = config('telegram.bot_token');
$this->httpUrl = "[url]https://api.telegram.org/bot[/url]" . $this->botToken . "/";
$this->client = new Client($this->httpUrl);
$this->api = new Api($this->botToken);
}
/**
* @return Api
*/
public function getApi()
{
return $this->api;
}
public function sendMessage($message, $chat_id, $keyboard = [['0. Назад']])
{
$reply_markup = $this->api->replyKeyboardMarkup([
'keyboard' => $keyboard,
'resize_keyboard' => false,
'one_time_keyboard' => false
]);
$this->api->sendMessage([
'chat_id' => $chat_id,
'text' => $message,
'reply_markup' => $reply_markup
]);
}
}
Я не могу получить 'chat_id'.
public function __construct(BotApi $bot)
{
$this->bot = $bot;
}
public function webhook()
{
/** @var Update $update */
$update = $this->bot->getApi()->getWebhookUpdates();
$message = trim($update->getMessage()->getText());
$data = [
'update_id' => $update->getUpdateId(),
'message_id' => $update->getMessage()->getMessageId(),
'chat_id' => $update->getMessage()->getChat()->getId(),
'userName' => $update->getMessage()->getChat()->getUsername(),
'text' => $update->getMessage()->getText(),
'photo' => $update->getMessage()->getPhoto()
];
}
Не в сети