Описание
Изменяет эмодзи-статус для указанного пользователя, который ранее разрешил боту управлять своим эмодзи-статусом через метод Mini App requestEmojiStatusAccess. Возвращает True при успешном выполнении.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| user_id | Integer | Да | Уникальный идентификатор целевого пользователя |
| emoji_status_custom_emoji_id | String | Опционально | Идентификатор кастомного эмодзи для устанавливаемого статуса. Передайте пустую строку для удаления статуса. |
| emoji_status_expiration_date | Integer | Опционально | Дата истечения срока действия эмодзи-статуса, если имеется |
Примеры
php
<?php
// Токен вашего бота
$botToken = 'YOUR_BOT_TOKEN';
// ID пользователя, которому нужно установить эмодзи статус
$userId = 123456789;
// ID кастомного эмодзи (можно получить из sticker.custom_emoji_id)
$customEmojiId = '1234567890123456789';
// Дата истечения статуса в формате Unix timestamp (необязательно)
$expirationDate = time() + 3600; // Через 1 час
// Формируем данные для запроса
$data = [
'user_id' => $userId,
'emoji_status_custom_emoji_id' => $customEmojiId,
'emoji_status_expiration_date' => $expirationDate
];
// URL для вызова метода setUserEmojiStatus
$url = "https://api.telegram.org/bot{$botToken}/setUserEmojiStatus";
// Отправляем запрос с помощью cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
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);
// Альтернативный вариант с удалением эмодзи статуса
function removeEmojiStatus($botToken, $userId) {
$data = [
'user_id' => $userId,
'emoji_status_custom_emoji_id' => '' // Пустая строка удаляет статус
];
$url = "https://api.telegram.org/bot{$botToken}/setUserEmojiStatus";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
// Пример использования функции удаления статуса
// $result = removeEmojiStatus($botToken, $userId);
?>
python
import requests
def set_user_emoji_status(bot_token, user_id, emoji_status_custom_emoji_id=None, emoji_status_expiration_date=None):
"""
Changes the emoji status for a user who previously allowed the bot to manage their emoji status.
Args:
bot_token (str): Your bot's token
user_id (int): Unique identifier of the target user
emoji_status_custom_emoji_id (str, optional): Custom emoji identifier. Pass empty string to remove status.
emoji_status_expiration_date (int, optional): Expiration date of the emoji status (Unix timestamp)
Returns:
bool: True on success
"""
url = f"https://api.telegram.org/bot{bot_token}/setUserEmojiStatus"
payload = {
"user_id": user_id
}
if emoji_status_custom_emoji_id is not None:
payload["emoji_status_custom_emoji_id"] = emoji_status_custom_emoji_id
if emoji_status_expiration_date is not None:
payload["emoji_status_expiration_date"] = emoji_status_expiration_date
response = requests.post(url, json=payload)
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"
USER_ID = 123456789
# Пример 1: Установка emoji статуса
try:
success = set_user_emoji_status(
bot_token=BOT_TOKEN,
user_id=USER_ID,
emoji_status_custom_emoji_id="custom_emoji_id_here",
emoji_status_expiration_date=1672531200 # Unix timestamp
)
print("Emoji status set successfully!")
except Exception as e:
print(f"Error: {e}")
# Пример 2: Удаление emoji статуса
try:
success = set_user_emoji_status(
bot_token=BOT_TOKEN,
user_id=USER_ID,
emoji_status_custom_emoji_id="" # Пустая строка для удаления
)
print("Emoji status removed successfully!")
except Exception as e:
print(f"Error: {e}")
История изменений
- API 8.0. Добавлен метод setUserEmojiStatus