Метод sendDice

Метод для отправки анимированного эмодзи, отображающего случайное значение, с возможностью настройки параметров уведомлений, защиты контента и интерфейса.

Описание

Используйте этот метод для отправки анимированного эмодзи, которое покажет случайное значение. В случае успеха возвращается отправленное Message.

Параметр Тип Обязательный Описание
business_connection_id String Опционально Уникальный идентификатор бизнес-подключения, от имени которого будет отправлено сообщение
chat_id Integer или String Да Уникальный идентификатор целевого чата или имя пользователя целевого канала (в формате @channelusername)
message_thread_id Integer Опционально Уникальный идентификатор целевой ветки сообщений (темы) форума; только для супергрупп-форумов
direct_messages_topic_id Integer Опционально Идентификатор темы прямых сообщений, в которую будет отправлено сообщение; требуется, если сообщение отправляется в чат прямых сообщений
emoji String Опционально Эмодзи, на основе которого строится анимация броска. В настоящее время должно быть одним из «🎲», «🎯», «🏀», «⚽», «🎳» или «🎰». Значения могут быть 1-6 для «🎲», «🎯» и «🎳», значения 1-5 для «🏀» и «⚽», и значения 1-64 для «🎰». По умолчанию «🎲»
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, упрощая создание пошаговых диалогов с ботом.
Комментарии