Как отправить сообщение в определенную тему в группе Telegram боту на PHP?
Добрый день, есть боевая задача: пересылать сообщения от поставщиков с нескольких групп в одну группу, которая разделена на темы (Тема 1 = сообщения из группы "Тема 1" и т.д.), бот должен пересылать сообщения из групп в одну группу. И тут я столкнулась с проблемой, что бот пересылает все сообщения в главную тему. И как сделать так, чтоб он понимал, что ему нужно пересылать сообщение в определенную тему понятия не имею. Помогите, пожалуйста
Dymok, Спасибо, я это читала, с id, разобралась, проблема теперь как правильно код написать, чтоб он был рабочим, просто прописать как написано для python не сработало
Да, можно указать, спасибо за подсказку все получилось). Оставлю тут свой кривовастый, но рабочий код на случай, если кому-то понадобится).
require_once 'vendor/autoload.php';
use TelegramBot\Api\Client;
define("TG_TOKEN", "API__TOKEN");
$bot_username = 'NAME_BOT';
$telegram = new Client(TG_TOKEN, $bot_username);
// Массив с информацией о группах и соответствующих темах
$groups = [
'-1001987654320' => 3,
'-1001987654320' => 5,
// Добавь сюда другие группы и темы
];
// Обработчик обновлений
$telegram->on(function ($update) use ($groups) {
$message = $update->getMessage();
$chat_id = $message->getChat()->getId();
function TG_sendMessage($getQuery) {
$ch = curl_init("https://api.telegram.org/bot". TG_TOKEN ."/sendMessage?" . http_build_query($getQuery));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$res = curl_exec($ch);
curl_close($ch);
return $res;
}
// Проверяем, пришло ли сообщение из одной из групп
if (isset($groups[$chat_id])) {
$super_group_id = 'группа куда пересылать';
$message_thread_id = $groups[$chat_id];
// Пересылаем сообщение в соответствующую супергруппу
$arrayFeedBack = array(
'chat_id' => $super_group_id,
'text' => $message->getText(),
'message_thread_id' => $message_thread_id, // номер темы
'parse_mode' => "html",
);
TG_sendMessage($arrayFeedBack);
}
}, function () {
return true; // Включаем обработку всех обновлений
});
$telegram->run();
Чтобы получить номер темы в группе достаточно написать пользователю в тему этой группы и скопировать ссылку на сообщение, вставить ее в поисковую строку браузера (например) https://t.me/c/1234567891/3/38 - цифра 3 и будет тем самым message_thread_id