Описание
Верифицирует чат от имени организации, которую представляет бот. Возвращает True при успехе.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| chat_id | Integer или String | Да | Уникальный идентификатор целевого чата или имя пользователя целевого канала (в формате @channelusername). Личные чаты каналов не могут быть верифицированы. |
| custom_description | String | Опционально | Пользовательское описание для верификации; 0-70 символов. Должно быть пустым, если организации не разрешено предоставлять пользовательское описание верификации. |
Примеры
php
<?php
$botToken = 'YOUR_BOT_TOKEN';
$apiUrl = "https://api.telegram.org/bot{$botToken}/";
// Данные для метода verifyChat
$chatId = '@channelusername'; // или числовой ID чата
$customDescription = 'Официальный канал нашей организации'; // опционально
// Подготовка параметров
$params = [
'chat_id' => $chatId,
];
// Добавляем опциональный параметр, если он задан и соответствует требованиям
if (!empty($customDescription) && mb_strlen($customDescription) <= 70) {
$params['custom_description'] = $customDescription;
}
// Отправка запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl . 'verifyChat');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // для отладки, в продакшене лучше использовать true
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (curl_errno($ch)) {
echo 'Ошибка cURL: ' . curl_error($ch);
} else {
$responseData = json_decode($response, true);
if ($responseData['ok']) {
echo "Чат успешно верифицирован!";
} else {
echo "Ошибка: " . $responseData['description'];
}
}
curl_close($ch);
// Альтернативный вариант с использованием file_get_contents (требует allow_url_fopen)
/*
$context = stream_context_create([
'http' => [
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded',
'content' => http_build_query($params)
]
]);
$response = file_get_contents($apiUrl . 'verifyChat', false, $context);
$responseData = json_decode($response, true);
if ($responseData['ok']) {
echo "Чат успешно верифицирован!";
} else {
echo "Ошибка: " . $responseData['description'];
}
*/
?>
python
import requests
def verify_chat(bot_token, chat_id, custom_description=None):
"""
Verifies a chat on behalf of the organization represented by the bot.
Parameters:
- bot_token: Your bot's token
- chat_id: Unique identifier for the target chat or username of the target channel
- custom_description: Custom description for verification (0-70 characters, optional)
Returns:
- True on success, raises exception on error
"""
url = f"https://api.telegram.org/bot{bot_token}/verifyChat"
payload = {
"chat_id": chat_id
}
if custom_description:
if len(custom_description) > 70:
raise ValueError("Custom description must be 0-70 characters")
payload["custom_description"] = custom_description
response = requests.post(url, json=payload)
response.raise_for_status()
result = response.json()
if result.get("ok"):
return True
else:
raise Exception(f"Error: {result.get('description')}")
# Пример использования:
if __name__ == "__main__":
# Замените на ваш токен бота
BOT_TOKEN = "YOUR_BOT_TOKEN"
# Пример 1: Верификация по ID чата
try:
result = verify_chat(BOT_TOKEN, chat_id=-1001234567890)
print("Chat verified successfully!")
except Exception as e:
print(f"Error: {e}")
# Пример 2: Верификация с кастомным описанием
try:
result = verify_chat(
BOT_TOKEN,
chat_id="@channelusername",
custom_description="Verified by Our Organization"
)
print("Chat verified with custom description!")
except Exception as e:
print(f"Error: {e}")
История изменений
- API 8.2. Добавлен метод verifyChat