Описание
Используйте этот метод, чтобы получить текущее значение кнопки меню бота в личном чате или кнопку меню по умолчанию. При успешном выполнении возвращает MenuButton.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| chat_id | Integer | Необязательный | Уникальный идентификатор целевого личного чата. Если не указан, будет возвращена кнопка меню бота по умолчанию |
Примеры
php
<?php
$botToken = 'YOUR_BOT_TOKEN';
$apiUrl = "https://api.telegram.org/bot{$botToken}/";
// Пример 1: Получить меню бота для конкретного чата
$chatId = 123456789; // ID приватного чата
$data = [
'chat_id' => $chatId
];
// Пример 2: Получить дефолтное меню бота (без указания chat_id)
// $data = [];
$ch = curl_init($apiUrl . 'getChatMenuButton');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => $data,
CURLOPT_HTTPHEADER => ['Content-Type: multipart/form-data']
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
if ($result['ok']) {
$menuButton = $result['result'];
// Обработка разных типов кнопок меню
switch ($menuButton['type']) {
case 'commands':
echo "Тип меню: Команды\n";
break;
case 'web_app':
echo "Тип меню: Веб-приложение\n";
echo "Текст: " . $menuButton['text'] . "\n";
echo "URL: " . $menuButton['web_app']['url'] . "\n";
break;
case 'default':
echo "Тип меню: Стандартный\n";
break;
}
} else {
echo "Ошибка: " . $result['description'] . "\n";
}
// Альтернативный вариант с использованием file_get_contents
function getChatMenuButton($chatId = null) {
$botToken = 'YOUR_BOT_TOKEN';
$url = "https://api.telegram.org/bot{$botToken}/getChatMenuButton";
$options = [
'http' => [
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded',
'content' => $chatId ? http_build_query(['chat_id' => $chatId]) : ''
]
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
return json_decode($response, true);
}
// Использование функции
$result = getChatMenuButton(123456789);
if ($result['ok']) {
print_r($result['result']);
}
?>
python
import requests
def get_chat_menu_button(bot_token, chat_id=None):
"""
Получает текущее значение кнопки меню бота в приватном чате.
Args:
bot_token (str): Токен вашего бота
chat_id (int, optional): ID приватного чата. Если не указан,
возвращается кнопка меню по умолчанию.
Returns:
dict: Объект MenuButton или None в случае ошибки
"""
url = f"https://api.telegram.org/bot{bot_token}/getChatMenuButton"
params = {}
if chat_id is not None:
params['chat_id'] = chat_id
try:
response = requests.post(url, json=params)
response.raise_for_status()
result = response.json()
if result.get('ok'):
return result.get('result')
else:
print(f"Ошибка: {result.get('description')}")
return None
except requests.exceptions.RequestException as e:
print(f"Ошибка запроса: {e}")
return None
# Пример использования
if __name__ == "__main__":
# Замените на ваш токен
BOT_TOKEN = "ВАШ_ТОКЕН_БОТА"
# Пример 1: Получить кнопку меню по умолчанию
default_button = get_chat_menu_button(BOT_TOKEN)
if default_button:
print(f"Кнопка меню по умолчанию: {default_button}")
# Пример 2: Получить кнопку меню для конкретного чата
# ЗАМЕНИТЕ на реальный chat_id
# PRIVATE_CHAT_ID = 123456789
# specific_button = get_chat_menu_button(BOT_TOKEN, PRIVATE_CHAT_ID)
# if specific_button:
# print(f"Кнопка меню для чата {PRIVATE_CHAT_ID}: {specific_button}")
История изменений
- API 6.0. Добавлен метод getChatMenuButton
Дополнительно
- MenuButton - Объект, описывающий кнопку меню бота в личном чате, которая может быть одного из трёх типов.