Старт
Первый запрос: getMe
Проверка токена через getMe: URL Bot API, JSON-ответ ok/result, типичные ошибки.
Базовый URL Bot API:
https://api.telegram.org/bot<TOKEN>/<METHOD>
Самый безопасный «пинг» — метод getMe: он не шлёт сообщения пользователям и сразу показывает, жив ли токен.
Пример на PHP (cURL)
function telegramApi(string $token, string $method, array $params = []): array
{
$url = 'https://api.telegram.org/bot' . $token . '/' . $method;
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_POST => $params !== [],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 15,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => $params === [] ? null : json_encode($params, JSON_UNESCAPED_UNICODE),
]);
$body = curl_exec($ch);
$code = (int) curl_getinfo($ch, CURLINFO_HTTP_CODE);
$err = curl_error($ch);
curl_close($ch);
if ($body === false) {
throw new RuntimeException('Network error: ' . $err);
}
$data = json_decode($body, true);
if (json_last_error() !== JSON_ERROR_NONE) {
throw new RuntimeException('Invalid JSON: ' . json_last_error_msg());
}
if ($code >= 400 || empty($data['ok'])) {
throw new RuntimeException('Telegram error: ' . ($data['description'] ?? ('HTTP ' . $code)));
}
return $data['result'];
}
$me = telegramApi(getenv('TELEGRAM_BOT_TOKEN'), 'getMe');
// id, is_bot, first_name, username, ...
На что смотреть в ответе
ok: trueи объектresult— успех;- Telegram часто отдаёт HTTP 200 даже при
ok: false— всегда читайте полеok; - ошибка авторизации — почти всегда битый или отозванный токен.
Дальше: получите апдейты через getUpdates или сразу настройте webhook.