最近 Telegram 在 Bot API 版本 6.3 中添加了对组中主题的支持,并将此支持添加到 python-telegram-bot 版本 13.15 中(请查找更改日志 https://docs.python-telegram-bot.org/en/stable/changelog .html)
我发送这样的消息:
{
"@type": "sendMessage",
"chat_id": "-1001580394181",
"input_message_content": {
"@type": "inputMessageText","text": {
"@type": "formattedText","text": "test", "entities": []
}
}
}
并且它有效。他们添加了 message_thread_id 参数来定义消息应发送到哪个主题。所以我添加了参数:
{
"@type": "sendMessage",
"chat_id": "-1001580394181",
"message_thread_id": "20451426304",
"input_message_content": {
"@type": "inputMessageText","text": {
"@type": "formattedText","text": "test", "entities": []
}
}
但是消息转到主要主题,没有错误或任何内容,除非我提供不正确的 message_thread_id,如果是这样,我会收到消息:
Code: 400, message: Invalid message thread ID specified
我做错了什么? ID 是正确的,我是通过捕获向主题通道发送测试消息的响应而得到的。
要向 Telegram 论坛主题发送消息,您需要回复一条消息:
💬 "Topic" was created
所以基本上您在电报主题中发送的每条消息都只是对此原始消息的回复。如果您将论坛视为消息,则可以检查此项。
例如,我已删除该消息,所以我:
https://api.telegram.org/bot{token}/getUpdates
message_id
这是我的消息的样子:
{ “好的”:正确的, “结果”: [ { “更新id”:1234567890, “信息”: { “消息id”:12345, “从”: { ... }, “聊天”: { “id”:-12345678, “标题”:“布鲁”, “is_forum”:正确, “type”:“超群” }, “日期”:0987654321, “消息线程 ID”:12345, “论坛主题已创建”: { ... }, “is_topic_message”:true } } ] }
所以您可以选择
message_id
或 message_thread_id
。就我而言,它们是相同的,但我不确定是否有区别。
现在将此
message_id
作为 reply_to_message_id
参数粘贴到 bot.send_message()
方法中。
bot.send_message(-12345678, 'Message for topic', reply_to_message_id=12345)
How in Google Script write?
function sendReminderToTelegram() {
var telegramBotToken = "____";
var telegramChatId = "-100CHAT_ID";
// Проверка текущего времени
var currentTime = new Date();
var targetTime = new Date();
targetTime.setHours(8); // Установка желаемого часа
targetTime.setMinutes(0); // Установка желаемых минут
// Создание сообщения
var message = "Прошу проверить принтеры и заправить их.";
// Отправка сообщения в Telegram
var telegramUrl = "https://api.telegram.org/bot" + telegramBotToken + "/sendMessage";
var payload = {
"chat_id": telegramChatId,
"text": message,
};
var options = {
"method" : "post",
"payload" : payload
};
UrlFetchApp.fetch(telegramUrl, options);
//}
}