Описание
Используйте этот метод, чтобы изменить кнопку меню бота в личном чате или кнопку меню по умолчанию. Возвращает 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 - Объект, указывающий, что для кнопки меню бота не задано специальное значение и используется настройка по умолчанию.