Описание
Используйте этот метод, чтобы установить новую фотографию профиля для чата. Фотографии нельзя изменить для личных чатов. Бот должен быть администратором в чате для работы этого метода и иметь соответствующие права администратора. Возвращает True при успешном выполнении.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| chat_id | Целое число или строка | Да | Уникальный идентификатор целевого чата или имя пользователя целевого канала (в формате @channelusername) |
| photo | InputFile | Да | Новая фотография чата, загружаемая с использованием multipart/form-data |
Примеры
php
<?php
$botToken = 'YOUR_BOT_TOKEN';
$chatId = 'CHAT_ID_OR_USERNAME'; // Например: -1001234567890 или "@channelusername"
// Путь к файлу фото
$photoPath = '/path/to/photo.jpg';
// URL API
$apiUrl = "https://api.telegram.org/bot{$botToken}/setChatPhoto";
// Проверка существования файла
if (!file_exists($photoPath)) {
die("Файл не найден: {$photoPath}");
}
// Подготовка данных для multipart/form-data
$postFields = [
'chat_id' => $chatId,
'photo' => new CURLFile($photoPath, mime_content_type($photoPath), basename($photoPath))
];
// Инициализация cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: multipart/form-data'
]);
// Выполнение запроса
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Проверка ошибок cURL
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);
?>
python
import requests
def set_chat_photo(bot_token, chat_id, photo_path):
"""
Устанавливает новую фотографию профиля для чата.
Args:
bot_token (str): Токен вашего бота
chat_id (int or str): ID чата или username канала
photo_path (str): Путь к файлу с фотографией
Returns:
bool: True в случае успеха, иначе False
"""
url = f"https://api.telegram.org/bot{bot_token}/setChatPhoto"
with open(photo_path, 'rb') as photo_file:
files = {'photo': photo_file}
data = {'chat_id': chat_id}
response = requests.post(url, data=data, files=files)
if response.status_code == 200:
result = response.json()
return result.get('result', False)
return False
# Пример использования:
# Установить фото для группы с ID -1001234567890
# set_chat_photo('YOUR_BOT_TOKEN', -1001234567890, 'chat_photo.jpg')
# Установить фото для канала @my_channel
# set_chat_photo('YOUR_BOT_TOKEN', '@my_channel', 'channel_photo.jpg')
История изменений
- API 3.1. Добавлен метод setChatPhoto
Дополнительно
- InputFile - Объект, представляющий содержимое файла для загрузки через multipart/form-data.