Описание
Используйте этот метод, чтобы изменить MaskPosition стикера-маски. Стикер должен принадлежать набору стикеров, созданному ботом. Возвращает True при успешном выполнении.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| sticker | String | Да | Идентификатор файла стикера |
| mask_position | MaskPosition | Необязательный | Объект в формате JSON с позицией, где маска должна размещаться на лицах. Пропустите параметр, чтобы удалить позицию маски. |
Примеры
php
<?php
$botToken = 'YOUR_BOT_TOKEN';
$apiUrl = "https://api.telegram.org/bot{$botToken}/";
// Идентификатор стикера (замените на реальный)
$stickerFileId = 'CAACAgIAAxkBAAIB...';
// Создаем объект MaskPosition
$maskPosition = [
'point' => 'forehead', // Допустимые значения: forehead, eyes, mouth, chin
'x_shift' => 0.5,
'y_shift' => 0.5,
'scale' => 1.0
];
// Подготавливаем данные для запроса
$postData = [
'sticker' => $stickerFileId,
'mask_position' => json_encode($maskPosition)
];
// Отправляем запрос к API Telegram
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl . 'setStickerMaskPosition');
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 "Позиция маски успешно обновлена!\n";
} else {
echo "Ошибка: " . $result['description'] . "\n";
}
// Альтернативный вариант: удаление позиции маски
$postDataRemove = [
'sticker' => $stickerFileId
// mask_position не передаем для удаления
];
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, $apiUrl . 'setStickerMaskPosition');
curl_setopt($ch2, CURLOPT_POST, true);
curl_setopt($ch2, CURLOPT_POSTFIELDS, $postDataRemove);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false);
$response2 = curl_exec($ch2);
curl_close($ch2);
$result2 = json_decode($response2, true);
if ($result2['ok']) {
echo "Позиция маски успешно удалена!\n";
} else {
echo "Ошибка при удалении: " . $result2['description'] . "\n";
}
?>
python
import requests
def set_sticker_mask_position(bot_token, sticker, mask_position=None):
"""
Изменяет позицию маски для стикера.
Args:
bot_token (str): Токен бота
sticker (str): Идентификатор файла стикера
mask_position (dict, optional): Позиция маски. Если None - удаляет позицию.
Returns:
bool: True при успехе
"""
url = f"https://api.telegram.org/bot{bot_token}/setStickerMaskPosition"
payload = {
"sticker": sticker
}
if mask_position:
payload["mask_position"] = mask_position
response = requests.post(url, json=payload)
result = response.json()
if result.get("ok"):
return True
else:
raise Exception(f"Ошибка: {result.get('description')}")
# Пример использования:
if __name__ == "__main__":
# Токен вашего бота
BOT_TOKEN = "ВАШ_ТОКЕН_БОТА"
# Идентификатор стикера (можно получить из сообщения со стикером)
STICKER_FILE_ID = "CAACAgIAAxkBAAIB..."
# Пример позиции маски (если нужно установить)
mask_position_example = {
"point": "forehead", # Точка привязки: forehead, eyes, mouth, chin
"x_shift": 0.5, # Сдвиг по X (от -1.0 до 1.0)
"y_shift": -0.25, # Сдвиг по Y (от -1.0 до 1.0)
"scale": 1.5 # Масштаб маски
}
try:
# Установка позиции маски
success = set_sticker_mask_position(
BOT_TOKEN,
STICKER_FILE_ID,
mask_position_example
)
print(f"Позиция маски установлена: {success}")
# Удаление позиции маски (передаем None)
success = set_sticker_mask_position(
BOT_TOKEN,
STICKER_FILE_ID,
None
)
print(f"Позиция маски удалена: {success}")
except Exception as e:
print(f"Произошла ошибка: {e}")
История изменений
- API 6.6. Добавлен метод setStickerMaskPosition
Дополнительно
- MaskPosition - Объект, определяющий стандартное положение маски на лице с возможностью смещения и масштабирования.