Описание
Используйте этот метод, чтобы отклонить предложенную публикацию в чате прямых сообщений. Бот должен иметь право администратора 'can_manage_direct_messages' в соответствующем канальном чате. Возвращает True при успешном выполнении.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| chat_id | Integer | Да | Уникальный идентификатор целевого чата прямых сообщений |
| message_id | Integer | Да | Идентификатор сообщения с предложенной публикацией для отклонения |
| comment | String | Необязательный | Комментарий для создателя предложенной публикации; 0-128 символов |
Примеры
php
<?php
// Токен вашего бота
$botToken = 'YOUR_BOT_TOKEN';
// Параметры запроса
$chatId = 123456789; // ID чата с прямыми сообщениями
$messageId = 987654321; // ID сообщения с предложенным постом
$comment = 'Ваш пост не соответствует правилам сообщества'; // Опциональный комментарий
// Формируем URL для вызова метода
$apiUrl = "https://api.telegram.org/bot{$botToken}/declineSuggestedPost";
// Подготавливаем данные
$postData = [
'chat_id' => $chatId,
'message_id' => $messageId
];
// Добавляем комментарий, если он указан
if (!empty($comment)) {
$postData['comment'] = $comment;
}
// Инициализируем cURL
$ch = curl_init($apiUrl);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => json_encode($postData),
CURLOPT_HTTPHEADER => [
'Content-Type: application/json'
]
]);
// Выполняем запрос
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
// Обрабатываем ответ
if ($httpCode === 200) {
$result = json_decode($response, true);
if ($result['ok'] === true) {
echo "Предложенный пост успешно отклонен!\n";
// Если был передан комментарий, выводим информацию о нем
if (!empty($comment)) {
echo "Комментарий для создателя: {$comment}\n";
}
} else {
echo "Ошибка: " . $result['description'] . "\n";
}
} else {
echo "HTTP ошибка: {$httpCode}\n";
echo "Ответ сервера: {$response}\n";
}
// Альтернативный вариант с использованием file_get_contents (требует allow_url_fopen)
/*
$context = stream_context_create([
'http' => [
'method' => 'POST',
'header' => 'Content-Type: application/json',
'content' => json_encode($postData)
]
]);
$response = file_get_contents($apiUrl, false, $context);
if ($response !== false) {
$result = json_decode($response, true);
var_dump($result);
}
*/
?>
python
import requests
def decline_suggested_post(bot_token, chat_id, message_id, comment=None):
"""
Отклоняет предложенный пост в чате прямых сообщений.
Args:
bot_token (str): Токен вашего бота
chat_id (int): Уникальный идентификатор целевого чата прямых сообщений
message_id (int): Идентификатор предложенного сообщения для отклонения
comment (str, optional): Комментарий для создателя предложенного поста (0-128 символов)
Returns:
bool: True в случае успеха, иначе False
"""
url = f"https://api.telegram.org/bot{bot_token}/declineSuggestedPost"
payload = {
"chat_id": chat_id,
"message_id": message_id
}
if comment is not None:
payload["comment"] = comment
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
except ValueError as e:
print(f"Ошибка парсинга JSON: {e}")
return False
# Пример использования:
if __name__ == "__main__":
# Замените на реальные значения
BOT_TOKEN = "YOUR_BOT_TOKEN"
CHAT_ID = 123456789 # ID чата прямых сообщений
MESSAGE_ID = 42 # ID предложенного сообщения
# Вариант 1: Без комментария
success = decline_suggested_post(BOT_TOKEN, CHAT_ID, MESSAGE_ID)
# Вариант 2: С комментарием
success = decline_suggested_post(
bot_token=BOT_TOKEN,
chat_id=CHAT_ID,
message_id=MESSAGE_ID,
comment="Ваш пост не соответствует нашим правилам сообщества."
)
if success:
print("Предложенный пост успешно отклонен!")
else:
print("Не удалось отклонить предложенный пост.")
История изменений
- API 9.2. Добавлен метод declineSuggestedPost