Описание
Верифицирует пользователя от имени организации, которую представляет бот. Возвращает True при успешном выполнении.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| user_id | Integer | Да | Уникальный идентификатор целевого пользователя |
| custom_description | String | Опционально | Пользовательское описание для верификации; 0-70 символов. Должно быть пустым, если организации не разрешено предоставлять пользовательское описание верификации. |
Примеры
php
<?php
// Токен вашего бота
$botToken = 'ВАШ_ТОКЕН_БОТА';
// ID пользователя для верификации
$userId = 123456789;
// Опциональное описание верификации
$customDescription = 'Verified by Example Organization';
// URL API Telegram
$apiUrl = "https://api.telegram.org/bot{$botToken}/verifyUser";
// Подготовка данных
$data = [
'user_id' => $userId,
];
// Добавляем описание, если оно указано и не пустое
if (!empty($customDescription)) {
$data['custom_description'] = $customDescription;
}
// Настройка cURL запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
// Выполнение запроса
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Проверка на ошибки cURL
if (curl_errno($ch)) {
echo 'Ошибка cURL: ' . curl_error($ch);
curl_close($ch);
exit;
}
curl_close($ch);
// Обработка ответа
if ($httpCode === 200) {
$result = json_decode($response, true);
if ($result['ok'] === true) {
echo "Пользователь успешно верифицирован!\n";
// Дополнительная обработка успешного результата
} else {
echo "Ошибка API: " . ($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\r\n",
'content' => json_encode($data),
],
]);
$response = file_get_contents($apiUrl, false, $context);
if ($response !== false) {
$result = json_decode($response, true);
var_dump($result);
}
*/
?>
python
import requests
def verify_user(bot_token, user_id, custom_description=None):
"""
Verifies a user on behalf of the organization represented by the bot.
Args:
bot_token (str): Telegram Bot API token
user_id (int): Unique identifier of the target user
custom_description (str, optional): Custom description for verification (0-70 characters)
Returns:
bool: True if successful, False otherwise
"""
url = f"https://api.telegram.org/bot{bot_token}/verifyUser"
payload = {
"user_id": user_id
}
if custom_description:
if len(custom_description) > 70:
raise ValueError("custom_description must be 0-70 characters")
payload["custom_description"] = custom_description
try:
response = requests.post(url, json=payload)
response.raise_for_status()
result = response.json()
if result.get("ok"):
return True
else:
print(f"Error: {result.get('description')}")
return False
except requests.exceptions.RequestException as e:
print(f"Request failed: {e}")
return False
except ValueError as e:
print(f"JSON decode error: {e}")
return False
# Пример использования
if __name__ == "__main__":
BOT_TOKEN = "YOUR_BOT_TOKEN"
USER_ID = 123456789
# Вариант 1: Без кастомного описания
success = verify_user(BOT_TOKEN, USER_ID)
print(f"Verification without custom description: {success}")
# Вариант 2: С кастомным описанием
success = verify_user(
BOT_TOKEN,
USER_ID,
custom_description="Verified by Our Organization"
)
print(f"Verification with custom description: {success}")
История изменений
- API 8.2. Добавлен метод verifyUser