Метод setChatMenuButton

Метод изменяет кнопку меню бота в личных чатах или устанавливает кнопку по умолчанию.

Описание

Используйте этот метод, чтобы изменить кнопку меню бота в личном чате или кнопку меню по умолчанию. Возвращает True при успешном выполнении.

Параметр Тип Обязательный Описание
chat_id Integer Опционально Уникальный идентификатор целевого личного чата. Если не указан, будет изменена кнопка меню бота по умолчанию
menu_button MenuButton Опционально JSON-сериализованный объект для новой кнопки меню бота. По умолчанию MenuButtonDefault

Примеры

php

<?php

$botToken = 'YOUR_BOT_TOKEN';
$apiUrl = "https://api.telegram.org/bot{$botToken}/";

// Пример 1: Установка кнопки меню по умолчанию для всех чатов
$dataDefault = [
    'menu_button' => [
        'type' => 'default'
    ]
];

// Пример 2: Установка командной кнопки меню для конкретного чата
$dataCommands = [
    'chat_id' => 123456789,
    'menu_button' => [
        'type' => 'commands'
    ]
];

// Пример 3: Установка веб-приложения кнопки меню
$dataWebApp = [
    'chat_id' => 123456789,
    'menu_button' => [
        'type' => 'web_app',
        'text' => 'Открыть приложение',
        'web_app' => [
            'url' => 'https://example.com/webapp'
        ]
    ]
];

function setMenuButton($data) {
    global $apiUrl;
    
    $url = $apiUrl . 'setChatMenuButton';
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json'
    ]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    return json_decode($response, true);
}

// Использование примеров:
// 1. Установка кнопки по умолчанию
// $result = setMenuButton($dataDefault);

// 2. Установка командной кнопки для конкретного чата
// $result = setMenuButton($dataCommands);

// 3. Установка веб-приложения кнопки
// $result = setMenuButton($dataWebApp);

// Проверка результата
// if ($result && $result['ok']) {
//     echo "Кнопка меню успешно установлена!";
// } else {
//     echo "Ошибка: " . ($result['description'] ?? 'Неизвестная ошибка');
// }

?>

python

import requests

# Замените 'YOUR_BOT_TOKEN' на токен вашего бота
BOT_TOKEN = 'YOUR_BOT_TOKEN'
BASE_URL = f'https://api.telegram.org/bot{BOT_TOKEN}/'

def set_chat_menu_button(chat_id=None, menu_button=None):
    """
    Изменяет кнопку меню бота в личном чате или устанавливает кнопку по умолчанию.
    
    :param chat_id: Уникальный идентификатор целевого личного чата
    :param menu_button: Объект MenuButton в виде словаря
    :return: Результат запроса
    """
    
    # Пример 1: Установка кнопки меню по умолчанию (без параметров)
    if chat_id is None and menu_button is None:
        response = requests.post(
            f'{BASE_URL}setChatMenuButton',
            json={}
        )
        return response.json()
    
    # Пример 2: Установка кнопки меню для конкретного чата
    params = {}
    
    if chat_id is not None:
        params['chat_id'] = chat_id
    
    if menu_button is not None:
        params['menu_button'] = menu_button
    
    response = requests.post(
        f'{BASE_URL}setChatMenuButton',
        json=params
    )
    
    return response.json()

# Пример использования:

# 1. Установка кнопки меню по умолчанию для всех чатов
result = set_chat_menu_button()
print("Результат установки кнопки по умолчанию:", result)

# 2. Установка кнопки меню типа "команды" для конкретного чата
chat_id = 123456789  # Замените на реальный chat_id
menu_button_commands = {
    "type": "commands"
}
result = set_chat_menu_button(chat_id=chat_id, menu_button=menu_button_commands)
print("Результат установки кнопки 'commands':", result)

# 3. Установка кнопки меню типа "веб-приложение" для конкретного чата
menu_button_web_app = {
    "type": "web_app",
    "text": "Открыть приложение",
    "web_app": {
        "url": "https://example.com/web-app"
    }
}
result = set_chat_menu_button(chat_id=chat_id, menu_button=menu_button_web_app)
print("Результат установки кнопки 'web_app':", result)

# 4. Установка кнопки меню типа "по умолчанию" для конкретного чата
menu_button_default = {
    "type": "default"
}
result = set_chat_menu_button(chat_id=chat_id, menu_button=menu_button_default)
print("Результат установки кнопки 'default':", result)

История изменений

  • API 6.0. Добавлен метод setChatMenuButton

Дополнительно

  • MenuButton - Объект, описывающий кнопку меню бота в личном чате, которая может быть одного из трёх типов.
  • MenuButtonDefault - Объект, указывающий, что для кнопки меню бота не задано специальное значение и используется настройка по умолчанию.
Комментарии