Описание
Используйте этот метод для отправки анимированного эмодзи, которое покажет случайное значение. В случае успеха возвращается отправленное Message.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| business_connection_id | String | Опционально | Уникальный идентификатор бизнес-подключения, от имени которого будет отправлено сообщение |
| chat_id | Integer или String | Да | Уникальный идентификатор целевого чата или имя пользователя целевого канала (в формате @channelusername) |
| message_thread_id | Integer | Опционально | Уникальный идентификатор целевой ветки сообщений (темы) форума; только для супергрупп-форумов |
| direct_messages_topic_id | Integer | Опционально | Идентификатор темы прямых сообщений, в которую будет отправлено сообщение; требуется, если сообщение отправляется в чат прямых сообщений |
| emoji | String | Опционально | Эмодзи, на основе которого строится анимация броска. В настоящее время должно быть одним из « |
| disable_notification | Boolean | Опционально | Отправляет сообщение беззвучно. Пользователи получат уведомление без звука. |
| protect_content | Boolean | Опционально | Защищает содержимое отправленного сообщения от пересылки |
| allow_paid_broadcast | Boolean | Опционально | Передайте True, чтобы разрешить до 1000 сообщений в секунду, игнорируя ограничения рассылки за плату 0,1 Telegram Stars за сообщение. Соответствующие Stars будут списаны с баланса бота |
| message_effect_id | String | Опционально | Уникальный идентификатор эффекта сообщения, который будет добавлен к сообщению; только для личных чатов |
| suggested_post_parameters | SuggestedPostParameters | Опционально | Объект в формате JSON, содержащий параметры предлагаемой публикации для отправки; только для чатов прямых сообщений. Если сообщение отправляется в ответ на другую предлагаемую публикацию, то эта предлагаемая публикация автоматически отклоняется. |
| reply_parameters | ReplyParameters | Опционально | Описание сообщения, на которое нужно ответить |
| reply_markup | InlineKeyboardMarkup или ReplyKeyboardMarkup или ReplyKeyboardRemove или ForceReply | Опционально | Дополнительные параметры интерфейса. Объект в формате JSON для встроенной клавиатуры, пользовательской клавиатуры ответа, инструкций по удалению клавиатуры ответа или принудительному ответу от пользователя |
Примеры
php
<?php
// Токен вашего бота
$botToken = 'YOUR_BOT_TOKEN';
$apiUrl = "https://api.telegram.org/bot{$botToken}/sendDice";
// Параметры запроса
$params = [
'chat_id' => 123456789, // Замените на реальный chat_id
'emoji' => '🎲', // Опционально: 🎲, 🎯, 🏀, ⚽, 🎳, 🎰
'disable_notification' => false, // Опционально
'protect_content' => false, // Опционально
'reply_parameters' => json_encode([ // Опционально
'message_id' => 123 // ID сообщения для ответа
]),
'reply_markup' => json_encode([ // Опционально
'inline_keyboard' => [
[
['text' => 'Бросить ещё раз', 'callback_data' => 'roll_dice']
]
]
])
];
// Удаляем пустые опциональные параметры
$params = array_filter($params, function($value) {
return $value !== null && $value !== '';
});
// Отправка запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
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);
if ($response === false) {
echo 'Ошибка cURL: ' . curl_error($ch);
} else {
$responseData = json_decode($response, true);
if ($responseData['ok']) {
echo 'Кубик брошен! Значение: ' . $responseData['result']['dice']['value'];
} else {
echo 'Ошибка: ' . $responseData['description'];
}
}
curl_close($ch);
// Альтернативный вариант с использованием file_get_contents
/*
$url = $apiUrl . '?' . http_build_query($params);
$response = file_get_contents($url);
$data = json_decode($response, true);
if ($data['ok']) {
echo 'Результат броска: ' . $data['result']['dice']['value'];
}
*/
?>
python
import requests
def send_dice(bot_token, chat_id, emoji=None, disable_notification=None,
protect_content=None, message_thread_id=None,
business_connection_id=None, direct_messages_topic_id=None,
allow_paid_broadcast=None, message_effect_id=None,
suggested_post_parameters=None, reply_parameters=None,
reply_markup=None):
"""
Отправка анимированного эмодзи-кубика в Telegram чат
"""
url = f"https://api.telegram.org/bot{bot_token}/sendDice"
payload = {
'chat_id': chat_id
}
# Добавляем опциональные параметры если они переданы
if emoji:
payload['emoji'] = emoji
if disable_notification is not None:
payload['disable_notification'] = disable_notification
if protect_content is not None:
payload['protect_content'] = protect_content
if message_thread_id:
payload['message_thread_id'] = message_thread_id
if business_connection_id:
payload['business_connection_id'] = business_connection_id
if direct_messages_topic_id:
payload['direct_messages_topic_id'] = direct_messages_topic_id
if allow_paid_broadcast is not None:
payload['allow_paid_broadcast'] = allow_paid_broadcast
if message_effect_id:
payload['message_effect_id'] = message_effect_id
if suggested_post_parameters:
payload['suggested_post_parameters'] = suggested_post_parameters
if reply_parameters:
payload['reply_parameters'] = reply_parameters
if reply_markup:
payload['reply_markup'] = reply_markup
response = requests.post(url, json=payload)
return response.json()
# Пример использования:
if __name__ == "__main__":
# Замените на ваш реальный токен бота и ID чата
BOT_TOKEN = "YOUR_BOT_TOKEN"
CHAT_ID = "YOUR_CHAT_ID"
# Пример 1: Простая отправка стандартного кубика 🎲
result = send_dice(BOT_TOKEN, CHAT_ID)
print(f"Стандартный кубик: {result}")
# Пример 2: Отправка баскетбольного мяча 🏀
result = send_dice(BOT_TOKEN, CHAT_ID, emoji="🏀")
print(f"Баскетбольный мяч: {result}")
# Пример 3: Отправка футбольного мяча ⚽ с отключением уведомлений
result = send_dice(BOT_TOKEN, CHAT_ID, emoji="⚽", disable_notification=True)
print(f"Футбольный мяч без звука: {result}")
# Пример 4: Отправка дартса 🎯 с защитой от пересылки
result = send_dice(BOT_TOKEN, CHAT_ID, emoji="🎯", protect_content=True)
print(f"Дартс с защитой: {result}")
# Пример 5: Отправка боулинга 🎳 в топик форума
result = send_dice(BOT_TOKEN, CHAT_ID, emoji="🎳", message_thread_id=123)
print(f"Боулинг в топике: {result}")
# Пример 6: Отправка слот-машины 🎰 (значения 1-64)
result = send_dice(BOT_TOKEN, CHAT_ID, emoji="🎰")
print(f"Слот-машина: {result}")
История изменений
- API 4.7. Добавлен метод sendDice
- API 4.8. Обновлен метод sendDice: Добавлен параметр emoji
- API 4.9. Обновлен метод sendDice: Добавлен параметр emoji для выбора анимации
- API 5.0. Обновлен метод sendDice: Добавлено поле allow_sending_without_reply и поддержка новых анимаций
- API 5.1. Обновлен метод sendDice: Добавлена поддержка параметра emoji для выбора анимации (кости, дартс, баскетбол, футбол, боулинг, игровой автомат)
- API 5.6. Обновлен метод sendDice: Добавлено поле protect_content
- API 6.3. Обновлен метод sendDice: Добавлен параметр message_thread_id
- API 7.0. Обновлен метод sendDice: Заменены параметры reply_to_message_id и allow_sending_without_reply на reply_parameters
- API 7.4. Обновлен метод sendDice: Добавлен параметр message_effect_id
- API 7.11. Обновлен метод sendDice: Добавлен параметр allow_paid_broadcast
- API 9.2. Обновлен метод sendDice: Добавлен параметр direct_messages_topic_id
- API 9.3. Обновлен метод sendDice: Поддержан параметр message_thread_id в личных чатах с темами для отправки сообщения в конкретную тему.
Дополнительно
- Message - Это основной объект, представляющий сообщение в Telegram, который содержит информацию об отправителе, чате, контенте (текст, медиа, служебные данные) и различные метаданные.
- SuggestedPostParameters - Объект содержит параметры публикации, предлагаемой ботом, включая цену и дату отправки.
- ReplyParameters - Объект, описывающий параметры для ответа на сообщение, включая идентификатор сообщения, чат, цитирование и дополнительные настройки.
- InlineKeyboardMarkup - Объект для создания встроенной клавиатуры, которая отображается непосредственно в сообщении.
- ReplyKeyboardMarkup - Объект, представляющий пользовательскую клавиатуру с вариантами ответа для ботов Telegram.
- ReplyKeyboardRemove - Объект для удаления пользовательской клавиатуры и возврата к стандартной буквенной клавиатуре в клиентах Telegram.
- ForceReply - Объект ForceReply принудительно отображает интерфейс ответа в клиентах Telegram, упрощая создание пошаговых диалогов с ботом.