Описание
Используйте этот метод, чтобы очистить список закреплённых сообщений в чате. В личных чатах и прямых сообщениях каналов не требуется дополнительных прав для открепления всех закреплённых сообщений. С другой стороны, бот должен быть администратором с правом 'can_pin_messages' или правом 'can_edit_messages', чтобы открепить все закреплённые сообщения в группах и каналах соответственно. Возвращает True при успешном выполнении.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| chat_id | Integer или String | Да | Уникальный идентификатор целевого чата или имя пользователя целевого канала (в формате @channelusername) |
Примеры
php
<?php
$botToken = 'YOUR_BOT_TOKEN';
$chatId = 'CHAT_ID_OR_USERNAME'; // Например: 123456789 или '@channelname'
$apiUrl = "https://api.telegram.org/bot{$botToken}/unpinAllChatMessages";
$postData = [
'chat_id' => $chatId
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Отключить для локального тестирования
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
if ($result['ok']) {
echo "Все закрепленные сообщения успешно откреплены!";
} else {
echo "Ошибка: " . $result['description'];
}
// Альтернативный вариант с использованием file_get_contents
/*
$context = stream_context_create([
'http' => [
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded',
'content' => http_build_query($postData)
]
]);
$response = file_get_contents($apiUrl, false, $context);
$result = json_decode($response, true);
*/
?>
python
import requests
def unpin_all_chat_messages(bot_token, chat_id):
"""
Открепляет все закрепленные сообщения в чате.
Args:
bot_token (str): Токен вашего бота
chat_id (int or str): ID чата или username канала
Returns:
bool: True в случае успеха, иначе False
"""
url = f"https://api.telegram.org/bot{bot_token}/unpinAllChatMessages"
payload = {
"chat_id": chat_id
}
try:
response = requests.post(url, json=payload)
response.raise_for_status()
result = response.json()
if result.get("ok"):
return True
else:
print(f"Ошибка: {result.get('description')}")
return False
except requests.exceptions.RequestException as e:
print(f"Ошибка запроса: {e}")
return False
# Пример использования
if __name__ == "__main__":
# Замените на ваш токен бота
BOT_TOKEN = "YOUR_BOT_TOKEN_HERE"
# Пример с числовым ID чата
chat_id = -1001234567890
success = unpin_all_chat_messages(BOT_TOKEN, chat_id)
print(f"Результат: {success}")
# Пример с username канала
channel_username = "@my_test_channel"
success = unpin_all_chat_messages(BOT_TOKEN, channel_username)
print(f"Результат: {success}")
История изменений
- API 5.0. Добавлен метод unpinAllChatMessages