There will be errors when working with the API, and they must be correctly handled on the client.
An error is characterized by several parameters:
Error Code
Numerical value similar to HTTP status. Contains information on the type of error that occurred: for example, a data input error, privacy error, or server error. This is a required parameter.
Error Type
A string literal in the form of /[A-Z_0-9]+/
, which summarizes the problem. For example, AUTH_KEY_UNREGISTERED
. This is an optional parameter.
Error Database
A full machine-readable JSON list of RPC errors that can be returned by all methods in the API can be found here », what follows is a description of its fields:
errors
— All error messages and codes for each method (object).- Keys: Error codes as strings (numeric strings)
- Values: All error messages for each method (object)
- Keys: Error messages (string)
- Values: An array of methods which may emit this error (array of strings)
descriptions
— Descriptions for every error mentioned inerrors
(and a few other errors not related to a specific method)- Keys: Error messages
- Values: Error descriptions
user_only
— A list of methods that can only be used by users, not bots.
Error messages and error descriptions may contain printf
placeholders in key positions, for now only %d
is used to map durations contained in error messages to error descriptions.
Example:
{
"errors": {
"420": {
"2FA_CONFIRM_WAIT_%d": [
"account.deleteAccount"
],
"SLOWMODE_WAIT_%d": [
"messages.forwardMessages",
"messages.sendInlineBotResult",
"messages.sendMedia",
"messages.sendMessage",
"messages.sendMultiMedia"
]
}
},
"descriptions": {
"2FA_CONFIRM_WAIT_%d": "Since this account is active and protected by a 2FA password, we will delete it in 1 week for security purposes. You can cancel this process at any time, you'll be able to reset your account in %d seconds.",
"SLOWMODE_WAIT_%d": "Slowmode is enabled in this chat: wait %d seconds before sending another message to this chat.",
"FLOOD_WAIT_%d": "Please wait %d seconds before repeating the action."
},
"user_only": {
"account.deleteAccount"
}
}
Error Constructors
There should be a way to handle errors that are returned in rpc_error constructors.
Below is a list of error codes and their meanings:
303 SEE_OTHER
The request must be repeated, but directed to a different data center.
Examples of Errors:
- FILE_MIGRATE_X: the file to be accessed is currently stored in a different data center.
- PHONE_MIGRATE_X: the phone number a user is trying to use for authorization is associated with a different data center.
- NETWORK_MIGRATE_X: the source IP address is associated with a different data center (for registration)
- USER_MIGRATE_X: the user whose identity is being used to execute queries is associated with a different data center (for registration)
In all these cases, the error description’s string literal contains the number of the data center (instead of the X) to which the repeated query must be sent.
More information about redirects between data centers »
400 BAD_REQUEST
The query contains errors. In the event that a request was created using a form and contains user generated data, the user should be notified that the data must be corrected before the query is repeated.
Examples of Errors:
- FIRSTNAME_INVALID: The first name is invalid
- LASTNAME_INVALID: The last name is invalid
- PHONE_NUMBER_INVALID: The phone number is invalid
- PHONE_CODE_HASH_EMPTY: phone_code_hash is missing
- PHONE_CODE_EMPTY: phone_code is missing
- PHONE_CODE_EXPIRED: The confirmation code has expired
- API_ID_INVALID: The api_id/api_hash combination is invalid
- PHONE_NUMBER_OCCUPIED: The phone number is already in use
- PHONE_NUMBER_UNOCCUPIED: The phone number is not yet being used
- USERS_TOO_FEW: Not enough users (to create a chat, for example)
- USERS_TOO_MUCH: The maximum number of users has been exceeded (to create a chat, for example)
- TYPE_CONSTRUCTOR_INVALID: The type constructor is invalid
- FILE_PART_INVALID: The file part number is invalid
- FILE_PARTS_INVALID: The number of file parts is invalid
- FILE_PART_X_MISSING: Part X (where X is a number) of the file is missing from storage
- MD5_CHECKSUM_INVALID: The MD5 checksums do not match
- PHOTO_INVALID_DIMENSIONS: The photo dimensions are invalid
- FIELD_NAME_INVALID: The field with the name FIELD_NAME is invalid
- FIELD_NAME_EMPTY: The field with the name FIELD_NAME is missing
- MSG_WAIT_FAILED: A request that must be completed before processing the current request returned an error
- MSG_WAIT_TIMEOUT: A request that must be completed before processing the current request didn’t finish processing yet
401 UNAUTHORIZED
There was an unauthorized attempt to use functionality available only to authorized users.
Examples of Errors:
- AUTH_KEY_UNREGISTERED: The key is not registered in the system
- AUTH_KEY_INVALID: The key is invalid
- USER_DEACTIVATED: The user has been deleted/deactivated
- SESSION_REVOKED: The authorization has been invalidated, because of the user terminating all sessions
- SESSION_EXPIRED: The authorization has expired
- AUTH_KEY_PERM_EMPTY: The method is unavailable for temporary authorization key, not bound to permanent
403 FORBIDDEN
Privacy violation. For example, an attempt to write a message to someone who has blacklisted the current user.
404 NOT_FOUND
An attempt to invoke a non-existent object, such as a method.
406 NOT_ACCEPTABLE
Similar to 400 BAD_REQUEST, but the app must display the error to the user a bit differently.
Do not display any visible error to the user when receiving the rpc_error
constructor: instead, wait for an updateServiceNotification update, and handle it as usual.
Basically, an updateServiceNotification popup
update will be emitted independently (ie NOT as an Updates constructor inside rpc_result
but as a normal update) immediately after emission of a 406 rpc_error
: the update will contain the actual localized error message to show to the user with a UI popup.
An exception to this is the AUTH_KEY_DUPLICATED
error, which is only emitted if any of the non-media DC detects that an authorized session is sending requests in parallel from two separate TCP connections, from the same or different IP addresses.
Note that parallel connections are still allowed and actually recommended for media DCs.
Also note that by session we mean a logged-in session identified by an authorization constructor, fetchable using account.getAuthorizations, not an MTProto session.
If the client receives an AUTH_KEY_DUPLICATED
error, the session is already invalidated by the server and the user must generate a new auth key and login again.
420 FLOOD
The maximum allowed number of attempts to invoke the given method with the given input parameters has been exceeded. For example, in an attempt to request a large number of text messages (SMS) for the same phone number.
Error Example:
- FLOOD_WAIT_X: A wait of X seconds is required (where X is a number)
500 INTERNAL
An internal server error occurred while a request was being processed; for example, there was a disruption while accessing a database or file storage.
If a client receives a 500 error, or you believe this error should not have occurred, please collect as much information as possible about the query and error and send it to the developers.
Other Error Codes
If a server returns an error with a code other than the ones listed above, it may be considered the same as a 500 error and treated as an internal server error.
Ошибка: A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: can’t parse inline keyboard button: Text buttons are unallowed in the inline keyboard.
Код:
import telebot
from telebot import types
bot = telebot.TeleBot('token', parse_mode='None') # Токен
@bot.message_handler(commands=['start']) # Ответ на команду /start
def start(message):
mess = f'Здравствуй, <b>{message.from_user.first_name}</b>!nЯ - <b>GimsShopBot</b>, бот созданный чтобы ...'
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton('Button'))
bot.send_message(message.chat.id, mess, reply_markup=markup, parse_mode='html')
bot.polling(none_stop=True) # Команда чтобы бот не отключался
-
Вопрос задан12 нояб. 2022
-
487 просмотров
У инлайна должна быть функция: либо дата, либо ссылка.
У тебя ни того, ни другого, поэтому и вылезает ошибка.
Неправильно:
markup.add(types.InlineKeyboardButton('Button'))
Правильно:
markup.add(types.InlineKeyboardButton('Button', callback_data='qwerty'))
#или
markup.add(types.InlineKeyboardButton('Button', url='google.com'))
Пригласить эксперта
-
Показать ещё
Загружается…
12 февр. 2023, в 00:06
1000 руб./в час
11 февр. 2023, в 22:57
25000 руб./за проект
11 февр. 2023, в 21:59
1000 руб./за проект
Минуточку внимания
Раздражает, когда какой-то сайт не загружается и отзывается непонятными ошибками. Обычно они сопровождаются одним из десятков HTTP-кодов, которые как раз намекают на характер сбоя, а также его вероятные причины.
В этом материале поговорим об ошибке 400 Bad Request. Почему она появляется и как ее исправить.
Чуть подробнее об ошибке 400
Как и другие коды, начинающиеся на четверку, 400 Bad Request говорит о том, что возникла проблема на стороне пользователя. Зачастую сервер отправляет ее, когда появившаяся неисправность не подходит больше ни под одну категорию ошибок.
Стоит запомнить — код 400 напрямую связан с клиентом (браузером, к примеру) и намекает на то, что отправленный запрос со стороны пользователя приводит к сбою еще до того, как его обработает сервер (вернее, так считает сам сервер).
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Из-за чего всплывает Bad Request?
Есть 4 повода для возникновения ошибки сервера 400 Bad Request при попытке зайти на сайт:
- Некорректно настроенные HTTP-заголовки в запросе со стороны клиента. Некоторые приложения и сайты мониторят заголовки на предмет наличия в них чего-нибудь подозрительного. Если ваш запрос не соответствует ожиданиям сервера, то высока вероятность появления ошибки 400 (но это не всегда вина пользователя).
- Такой же сбой появляется, если клиент пытается загрузить на сервер файл слишком большого размера. Это происходит, потому что на большинстве сайтов есть ограничения по размеру загружаемых данных. Причем ограничение может быть как в 2 гигабайта, так и в 600 килобайт.
- Еще ошибка 400 появляется, когда пользователь пытается получить доступ к несуществующей странице. То есть в браузер банально ввели ссылку с опечаткой, некорректным доменом или поддоменом.
- Устаревшие или измененные куки-файлы. Сервер может воспринять подмену куки-файлов как попытку атаковать или воспользоваться дырой в безопасности. Поэтому такие запросы сходу блокируются.
Читайте также
Исправляем ошибку 400 Bad Request на стороне клиента
Так как ошибка 400 в 99 случаев из 100 возникает на стороне клиента, начнем с соответствующих методов. Проверим все элементы, участвующие в передаче запроса со стороны клиента (браузера).
Проверяем адрес сайта
Банальщина, но необходимая банальщина. Перед тем как бежать куда-то жаловаться и предпринимать более серьезные шаги, повнимательнее взгляните на ссылку в адресной строке. Может, где-то затесалась опечатка или вы случайно написали большую букву вместо маленькой. Некоторые части адреса чувствительны к регистру.
А еще стоит поискать запрашиваемую страницу через поисковик, встроенный в сайт. Есть вероятность, что конкретная страница куда-то переехала, но сервер не может показать подходящий HTTP-код в духе 404 Not Found. Если, конечно, сам сайт работает.
Сбрасываем параметры браузера
Этот метод срабатывает, если сервер отказывается принимать запросы из-за «битых» куки или других данных. Дело в том, что сайт использует куки-файлы, чтобы хранить информацию о пользователе у него же в браузере. При входе конкретного человека на ресурс, он пытается распознать куки и сравнить информацию с той, что уже есть на сервере.
Иногда случается, что куки-файлы одного или нескольких пользователей вступают в конфликт. В таком случае надо открыть настройки браузера, а потом удалить весь кэш, куки и прочие связанные элементы.
В зависимости от браузера процесс удаления куки-файлов может немного отличаться. В Chrome это работает так:
- Открываем настройки браузера.
- Переходим в раздел «Конфиденциальность и безопасность».
- Выбираем «Файлы cookie и другие данные».
- Нажимаем на кнопку «Удалить все».
Для чистки cookies можно использовать стороннюю программу в духе CCleaner или CleanMyPC.
Загружаем файл подходящего размера
Если ошибка 400 Bad Request появляется при попытке загрузить на сайт какой-нибудь файл, то стоит попробовать загрузить файл поменьше. Иногда вебмастера ленятся грамотно настроить ресурс, и вместо понятного объяснения вроде «Загружаемые файлы не должны быть размером больше 2 мегабайт» люди получают Bad Request. Остается только гадать, какой там у них лимит.
Устраняем проблемы, связанные с Windows и сторонним софтом
Помимо браузера, на работу сети могут влиять другие программные продукты (экраны, защищающие от «непонятных подключений»). И вирусы. Да и сама Windows может стать проблемой. Почти любой ее компонент. Поэтому надо бы проделать следующее:
- Повторно установить NET.Framework. Желательно перед этим удалить предыдущую версию.
- Установить какой-нибудь приличный антивирус (а лучше два) и запустить глубокую проверку систему. Возможно, подключению и входу на ресурс мешает вредоносная программа.
- Если у вас уже установлен антивирус, то, наоборот, попробуйте его отключить. Иногда встроенные в них экраны проверки подключений блокируют работу браузера целиком или отдельных страниц. Лучше выдать браузеру больше прав на выполнение своих задач или установить антивирус, который более лояльно относится к установленному на компьютере софту.
- Еще надо поменять параметры брандмауэра. Его можно разыскать в панели управления Windows. Там надо добавить в список исключений ваш браузер. Тогда брандмауэр не будет мешать подключению к запрашиваемому сайту.
- Почистить Windows от программного мусора. Можно пройтись приложением CCleaner.
- Обновить драйверы для сетевых устройств.
- Обновить Windows или просканировать систему на наличие погрешностей в системных компонентах.
Ищем проблему на стороне сервера
Если что-то происходит на стороне ресурса, то это редко заканчивается ошибкой 400. Но все-таки есть несколько сценариев, при которых клиента обвиняют в сбое зря, а настоящая вина лежит на сервере.
Проверяем требования к HTTP-заголовкам
Пока настраиваешь сайт, несложно допустить ошибку или даже парочку. Возможно, требования к HTTP-заголовком указаны некорректно, и сервер ожидает запросы с ошибками, которые по объективным причинам не может распознать адекватно. Тогда администратору стоит перепроверить ожидаемые заголовки на своем сайте или в приложении.
Удаляем свежие обновления и плагины
Иногда ошибка 400 Bad Request появляется после обновления CMS или установки новых плагинов. Если у вас она появилась из-за этого, то наиболее логичное решение — откатиться до более ранней версии CMS и удалить все новые плагины.
Главное, перед этим сделать резервную копию данных. И перед установкой обновлений тоже стоило бы.
Проверяем состояние базы данных
Некоторые сторонние расширения для того же WordPress получают полный доступ к ресурсу и имеют право вносить изменения даже в подключенную базу данных. Если после удаления свежих плагинов ошибка 400 никуда не исчезла и появляется у всех, кто пытается зайти на сайт, стоит проверить, в каком состоянии находится база данных. Нужно вручную проверить все записи на наличие подозрительных изменений, которые могли быть сделаны установленными расширениями.
Исправляем ошибки в коде и скриптах
Ничего из вышеперечисленного не помогло? Тогда осталось проверить свой код и работающие скрипты. Лучше провести дебаггинг вручную и не надеяться на помощь компьютера. Сделать копию приложения или сайта, потом пошагово проверить каждый отрезок кода в поисках ошибок.
В крайнем случае придется кричать «полундра» и звать на помощь техподдержку хостинга. Возможно, возникли сложности на их стороне. Тогда вообще ничего не надо будет делать. Просто ждать, пока все исправят за вас.
На этом все. Основные причины появления 400 Bad Request разобрали. Как ее лечить — тоже. Теперь дело за вами. Пользуйтесь полученной информацией, чтобы больше не пришлось мучиться в попытках зайти на нужный ресурс.
В данной статье собраны ошибки, возвращаемые API Telegram. Числовое значение аналогично статусу HTTP. Содержит информацию о типе возникшей ошибки: например, ошибка ввода данных, ошибка конфиденциальности или ошибка сервера.
303 SEE_OTHER
Запрос необходимо повторить, но направить в другой центр обработки данных.
Примеры ошибок:
- FILE_MIGRATE_X: файл, к которому нужно получить доступ, в настоящее время хранится в другом центре обработки данных.
- PHONE_MIGRATE_X: номер телефона, который пользователь пытается использовать для авторизации, связан с другим центром обработки данных.
- NETWORK_MIGRATE_X: исходный IP-адрес связан с другим центром обработки данных (для регистрации)
- USER_MIGRATE_X: пользователь, личность которого используется для выполнения запросов, связан с другим центром обработки данных (для регистрации)
Во всех этих случаях строковый литерал описания ошибки содержит номер центра обработки данных (вместо X), в который должен быть отправлен повторный запрос.
ОШИБКА 400, НЕВЕРНЫЙ ЗАПРОС
Запрос содержит ошибки. В случае, если запрос был создан с использованием формы и содержит данные, созданные пользователем, пользователь должен быть уведомлен о том, что данные должны быть исправлены, прежде чем запрос будет повторен.
Примеры ошибок:
- FIRSTNAME_INVALID: имя недействительно
- LASTNAME_INVALID: фамилия недействительна
- PHONE_NUMBER_INVALID: номер телефона недействителен
- PHONE_CODE_HASH_EMPTY: phone_code_hash отсутствует
- PHONE_CODE_EMPTY: phone_code отсутствует
- PHONE_CODE_EXPIRED: срок действия кода подтверждения истек
- API_ID_INVALID: комбинация api_id / api_hash недействительна
- PHONE_NUMBER_OCCUPIED: номер телефона уже используется
- PHONE_NUMBER_UNOCCUPIED: номер телефона еще не используется
- USERS_TOO_FEW: недостаточно пользователей (например, для создания чата)
- USERS_TOO_MUCH: превышено максимальное количество пользователей (например, для создания чата)
- TYPE_CONSTRUCTOR_INVALID: конструктор типа недействителен
- FILE_PART_INVALID: неверный номер части файла.
- FILE_PARTS_INVALID: недопустимое количество частей файла.
- FILE_PART_Х_MISSING: часть X (где X — номер) файла отсутствует в хранилище
- MD5_CHECKSUM_INVALID: контрольные суммы MD5 не совпадают
- PHOTO_INVALID_DIMENSIONS: размеры фотографии недействительны
- FIELD_NAME_INVALID: поле с именем FIELD_NAME недействительно
- FIELD_NAME_EMPTY: поле с названием FIELD_NAME отсутствует
- MSG_WAIT_FAILED: запрос, который должен быть выполнен перед обработкой текущего запроса, возвратил ошибку
- MSG_WAIT_TIMEOUT: запрос, который должен быть выполнен перед обработкой текущего запроса, еще не завершил обработку
401 ОШИБКА ДОСТУПА
Произошла попытка несанкционированного использования функций, доступных только авторизованным пользователям.
Примеры ошибок:
- AUTH_KEY_UNRIGN: Ключ не зарегистрирован в системе
- AUTH_KEY_INVALID: ключ недействителен
- USER_DEACTIVATED: пользователь удален / деактивирован
- SESSION_REVOKED: авторизация была аннулирована из-за того, что пользователь завершил все сеансы
- SESSION_EXPIRED: срок авторизации истек
- AUTH_KEY_PERM_EMPTY: метод недоступен для временного ключа авторизации, не привязан к постоянному
403 ЗАПРЕЩЕНО
Нарушение конфиденциальности. Например, попытка написать сообщение кому-то, кто занес текущего пользователя в черный список.
404 НЕ НАЙДЕНО
Попытка вызвать несуществующий объект, например метод.
406 NOT_ACCEPTABLE
Подобно 400 BAD_REQUEST , но приложение не должно отображать сообщения об ошибках для пользователя в пользовательском интерфейсе в результате этого ответа. Вместо этого сообщение об ошибке будет доставлено через updateServiceNotification.
420 FLOOD
Превышено максимально допустимое количество попыток вызвать данный метод с заданными входными параметрами. Например, при попытке запросить большое количество текстовых сообщений (SMS) на один и тот же номер телефона.
Пример ошибки:
- FLOOD_WAIT_X: требуется ожидание X секунд (где X — число)
500 ВНУТРЕННИЙ
Произошла внутренняя ошибка сервера во время обработки запроса; например, произошел сбой при доступе к базе данных или файловому хранилищу.
Если клиент получает ошибку 500 или вы считаете, что эта ошибка не должна была возникнуть, пожалуйста, соберите как можно больше информации о запросе и ошибке и отправьте ее разработчикам.
Другие коды ошибок
Если сервер возвращает ошибку с кодом, отличным от перечисленных выше, это может рассматриваться как ошибка 500 и рассматриваться как внутренняя ошибка сервера.
Ошибки в Телеграм
Работая в мессенджере иногда можно столкнуться с ситуацией, когда появляется уведомление, которое говорит об ошибке. Такие сообщения имеют разный характер. Очень важно уметь их различать для того, чтобы оперативно решить. Мы расскажем вам о самых распространенных ошибках и дадим советы, как их исправить.
Самые распространенные ошибки в Telegram делятся на три типа:
- Уведомления, сигнализирующие об ошибке. Сообщения такого рода приходят чаще всего, и решить их не так сложно. В самом уведомлении обычно в виде цифрового или текстового кода пишется, в чем проблема
- Отказ мессенджера работать при запуске. Тут уже чуть сложнее, но существует две причины, по которым это происходит: проблемы на сервере Telegram или отсутствие каких-то системных файлов на устройстве.
- Сбой в работе мессенджера. К этому пункту относятся все остальные ошибки, из-за которых Telegram не может работать исправно.
Начнем по порядку. 1. Уведомления, сигнализирующие об ошибке.
Подобные уведомления чаще прочих приходится видеть пользователям приложения, которые выражаются в цифровых кодах. Среди них:
Ошибка 303 – данные некорректно обработаны во время работы с программным интерфейсом;
Ошибка 400, 401, 403 – проблемы внутренние;
Ошибка 500 – проблемы с сервером.
Ошибки, выражающиеся в текстовых кодах:
- не зарегистрирован ключ авторизации;
- недействительный ключ авторизации;
- имя пользователя введено некорректно;
- фамилия введена не верно;
- номер телефона введен не правильно;
- номер телефона уже используется;
- закончился срок кода подтверждения;
- параметры и размеры изображения не подходят;
- авторизация отклонена, так как кто-то из пользователей закончил сессии;
- истекло выделенное время;
- не хватает участников;
- максимально возможный лимит участников превышен;
- контакт пользователя удален.
Все эти ошибки считаются внутренними и происходят из-за неправильной авторизации или не правильного использования все возможностей приложения.
2. Отказ мессенджера работать при запуске.
Такая проблема считается одной из распространенных. Случаев бывает несколько и стоит определиться, какой подходит именно вам:
- Если при запуске приложения всплывает — connecting, то значит проблема на сервере и с этим ничего не сделать. Стать зайти чуть позже.
- Если появляется окно Start Messeging при входе с компьютера, но ничего не происходит, то стоит убедиться – правильно ли скачана версия для операционной системы. Если все верно, то стоит переустановить приложение, но до этого удалив все, что с ним связано. Мешать приложению может и антивирус на компьютере. Возможно стоит отключить его на время, а мессенджер запустить от имени администратора.
- Сбой в работе мессенджера.
Одна из проблем в этом случае – невозможность отправки сообщения. И нюансы тут свои. Например, если сообщение отправлено контакту, которого нет в списке контактов, то может всплыть сообщение о том, что вы можете отправлять смс только своим контактам.
Бывает, что проблемы возникают с секретным чатом. Считается, что этот уникальный алгоритм может давать сбои. Решить эту проблему можно с помощью отклонения сторонних плагинов, которые установлены на телефоне.
«В приложении не меняется время». Такая ошибка тоже может возникать. Она связана с неправильным установлением времени на смартфоне. Чтобы убрать эту ошибку в настройках «даты и времени» убрать галочку в пункте «время по сети», а также посмотреть, правильно ли определен часовой пояс.
На чтение 2 мин Просмотров 411 Опубликовано 05.09.2022
Самых разных программ сейчас есть достаточно много. Они устанавливаются на телефоны, планшеты, компьютеры и ноутбуки. Использовать их можно для разных целей, но в большинстве случаев, каждый человек имеет что-то, что позволяет ему поддерживать связь с другими людьми. Это может быть социальная сеть, мессенджер или еще какой-то способ для обмена сообщениями. Некоторые из них даже позволяют проводить какую-то автоматизацию процессов, создавать группы и ботов, которые позволяют объединить людей.
Телеграм
Telegram — кроссплатформенная система мгновенного обмена сообщениями (мессенджер) с функциями VoIP, позволяющая обмениваться текстовыми, голосовыми и видеосообщениями, стикерами и фотографиями, файлами многих форматов. Также можно совершать видео- и аудиозвонки и трансляции в каналах и группах.
Является достаточно популярным мессенджером, потому что позволяет создавать разные группы, а в них добавлять ботов, которые могут собирать информацию. Так что им пользуется много человек, потому что он позволяет искать определенную информацию или общаться в формате чата.
Ошибка запроса
Telegram API Error Code 400 Bad request обычно связана с каким0то ботом или автоматизацией. Возникает она в том случае, когда вы хотите запросить или просмотреть какую-то информацию. Может появится и в других ситуациях но это маловероятно, потому что нужен именно запрос, иначе выдаст какой-то другой код ошибки.
Есть несколько случаев, когда вы с помощью бота можете получить такой ответ:
- Подобный сбой может вылетать когда вы меняете текст на точно такой же текст. То есть текст “привет кукушка”, вы пытаетесь изменить на “привет кукушка”.
- Либо кто-то из участников чата, либо вы ранее уже удалили это сообщение
- Ошибка 400 Bad Request – это код ответа, который означает, что сервер не смог обработать запрос, отправленный клиентом из-за неверного синтаксиса
Первые ситуации относятся к тому, что вы пытаетесь сделать что-то, что сделать нельзя или обращаетесь к несуществующему объекту. Последний случай связан с самой программой и построение запроса. Если там была какая-то ошибка или команда, которую телеграмм или сервер не знает, то вы получите такой код.
В простейших случаях это бывают незакрытые скобки или кавычки, опечатка в команде, неправильное построение запроса или что-то подобное. Попробуйте заново перепроверить все это.
Содержание
- Error handling
- Коды ошибок Telegram API
- 303 SEE_OTHER
- ОШИБКА 400, НЕВЕРНЫЙ ЗАПРОС
- 401 ОШИБКА ДОСТУПА
- 403 ЗАПРЕЩЕНО
- 404 НЕ НАЙДЕНО
- 406 NOT_ACCEPTABLE
- 420 FLOOD
- 500 ВНУТРЕННИЙ
- Другие коды ошибок
- Telegram пишет: “слишком много попыток повторите позже” – что делать?
- Много попыток входа в Телеграм: основные причины проблемы
- Ошибка Telegram: много попыток отправки сообщений
- Ошибка Telegram “много попыток” в случае глюка системы безопасности
- Ошибка Telegram: много попыток входа/выхода
- Много попыток входа в Телеграм: сколько ждать?
Error handling
There will be errors when working with the API, and they must be correctly handled on the client.
An error is characterized by several parameters:
Numerical value similar to HTTP status. Contains information on the type of error that occurred: for example, a data input error, privacy error, or server error. This is a required parameter.
A string literal in the form of /[A-Z_0-9]+/ , which summarizes the problem. For example, AUTH_KEY_UNREGISTERED . This is an optional parameter.
A full machine-readable JSON list of RPC errors that can be returned by all methods in the API can be found here », what follows is a description of its fields:
- errors — All error messages and codes for each method (object).
- Keys: Error codes as strings (numeric strings)
- Values: All error messages for each method (object)
- Keys: Error messages (string)
- Values: An array of methods which may emit this error (array of strings)
- descriptions — Descriptions for every error mentioned in errors (and a few other errors not related to a specific method)
- Keys: Error messages
- Values: Error descriptions
- user_only — A list of methods that can only be used by users, not bots.
Error messages and error descriptions may contain printf placeholders in key positions, for now only %d is used to map durations contained in error messages to error descriptions.
There should be a way to handle errors that are returned in rpc_error constructors.
Below is a list of error codes and their meanings:
The request must be repeated, but directed to a different data center.
- FILE_MIGRATE_X: the file to be accessed is currently stored in a different data center.
- PHONE_MIGRATE_X: the phone number a user is trying to use for authorization is associated with a different data center.
- NETWORK_MIGRATE_X: the source IP address is associated with a different data center (for registration)
- USER_MIGRATE_X: the user whose identity is being used to execute queries is associated with a different data center (for registration)
In all these cases, the error description’s string literal contains the number of the data center (instead of the X) to which the repeated query must be sent. More information about redirects between data centers »
The query contains errors. In the event that a request was created using a form and contains user generated data, the user should be notified that the data must be corrected before the query is repeated.
- FIRSTNAME_INVALID: The first name is invalid
- LASTNAME_INVALID: The last name is invalid
- PHONE_NUMBER_INVALID: The phone number is invalid
- PHONE_CODE_HASH_EMPTY: phone_code_hash is missing
- PHONE_CODE_EMPTY: phone_code is missing
- PHONE_CODE_EXPIRED: The confirmation code has expired
- API_ID_INVALID: The api_id/api_hash combination is invalid
- PHONE_NUMBER_OCCUPIED: The phone number is already in use
- PHONE_NUMBER_UNOCCUPIED: The phone number is not yet being used
- USERS_TOO_FEW: Not enough users (to create a chat, for example)
- USERS_TOO_MUCH: The maximum number of users has been exceeded (to create a chat, for example)
- TYPE_CONSTRUCTOR_INVALID: The type constructor is invalid
- FILE_PART_INVALID: The file part number is invalid
- FILE_PARTS_INVALID: The number of file parts is invalid
- FILE_PART_X_MISSING: Part X (where X is a number) of the file is missing from storage
- MD5_CHECKSUM_INVALID: The MD5 checksums do not match
- PHOTO_INVALID_DIMENSIONS: The photo dimensions are invalid
- FIELD_NAME_INVALID: The field with the name FIELD_NAME is invalid
- FIELD_NAME_EMPTY: The field with the name FIELD_NAME is missing
- MSG_WAIT_FAILED: A request that must be completed before processing the current request returned an error
- MSG_WAIT_TIMEOUT: A request that must be completed before processing the current request didn’t finish processing yet
There was an unauthorized attempt to use functionality available only to authorized users.
- AUTH_KEY_UNREGISTERED: The key is not registered in the system
- AUTH_KEY_INVALID: The key is invalid
- USER_DEACTIVATED: The user has been deleted/deactivated
- SESSION_REVOKED: The authorization has been invalidated, because of the user terminating all sessions
- SESSION_EXPIRED: The authorization has expired
- AUTH_KEY_PERM_EMPTY: The method is unavailable for temporary authorization key, not bound to permanent
Privacy violation. For example, an attempt to write a message to someone who has blacklisted the current user.
An attempt to invoke a non-existent object, such as a method.
Similar to 400 BAD_REQUEST, but the app must display the error to the user a bit differently.
Do not display any visible error to the user when receiving the rpc_error constructor: instead, wait for an updateServiceNotification update, and handle it as usual.
Basically, an updateServiceNotification popup update will be emitted independently (ie NOT as an Updates constructor inside rpc_result but as a normal update) immediately after emission of a 406 rpc_error : the update will contain the actual localized error message to show to the user with a UI popup.
An exception to this is the AUTH_KEY_DUPLICATED error, which is only emitted if any of the non-media DC detects that an authorized session is sending requests in parallel from two separate TCP connections, from the same or different IP addresses.
Note that parallel connections are still allowed and actually recommended for media DCs.
Also note that by session we mean a logged-in session identified by an authorization constructor, fetchable using account.getAuthorizations, not an MTProto session.
If the client receives an AUTH_KEY_DUPLICATED error, the session is already invalidated by the server and the user must generate a new auth key and login again.
The maximum allowed number of attempts to invoke the given method with the given input parameters has been exceeded. For example, in an attempt to request a large number of text messages (SMS) for the same phone number.
- FLOOD_WAIT_X: A wait of X seconds is required (where X is a number)
An internal server error occurred while a request was being processed; for example, there was a disruption while accessing a database or file storage.
If a client receives a 500 error, or you believe this error should not have occurred, please collect as much information as possible about the query and error and send it to the developers.
If a server returns an error with a code other than the ones listed above, it may be considered the same as a 500 error and treated as an internal server error.
Источник
Коды ошибок Telegram API
В данной статье собраны ошибки, возвращаемые API Telegram. Числовое значение аналогично статусу HTTP. Содержит информацию о типе возникшей ошибки: например, ошибка ввода данных, ошибка конфиденциальности или ошибка сервера.
303 SEE_OTHER
Запрос необходимо повторить, но направить в другой центр обработки данных.
- FILE_MIGRATE_X: файл, к которому нужно получить доступ, в настоящее время хранится в другом центре обработки данных.
- PHONE_MIGRATE_X: номер телефона, который пользователь пытается использовать для авторизации, связан с другим центром обработки данных.
- NETWORK_MIGRATE_X: исходный IP-адрес связан с другим центром обработки данных (для регистрации)
- USER_MIGRATE_X: пользователь, личность которого используется для выполнения запросов, связан с другим центром обработки данных (для регистрации)
Во всех этих случаях строковый литерал описания ошибки содержит номер центра обработки данных (вместо X), в который должен быть отправлен повторный запрос.
ОШИБКА 400, НЕВЕРНЫЙ ЗАПРОС
Запрос содержит ошибки. В случае, если запрос был создан с использованием формы и содержит данные, созданные пользователем, пользователь должен быть уведомлен о том, что данные должны быть исправлены, прежде чем запрос будет повторен.
- FIRSTNAME_INVALID: имя недействительно
- LASTNAME_INVALID: фамилия недействительна
- PHONE_NUMBER_INVALID: номер телефона недействителен
- PHONE_CODE_HASH_EMPTY: phone_code_hash отсутствует
- PHONE_CODE_EMPTY: phone_code отсутствует
- PHONE_CODE_EXPIRED: срок действия кода подтверждения истек
- API_ID_INVALID: комбинация api_id / api_hash недействительна
- PHONE_NUMBER_OCCUPIED: номер телефона уже используется
- PHONE_NUMBER_UNOCCUPIED: номер телефона еще не используется
- USERS_TOO_FEW: недостаточно пользователей (например, для создания чата)
- USERS_TOO_MUCH: превышено максимальное количество пользователей (например, для создания чата)
- TYPE_CONSTRUCTOR_INVALID: конструктор типа недействителен
- FILE_PART_INVALID: неверный номер части файла.
- FILE_PARTS_INVALID: недопустимое количество частей файла.
- FILE_PART_Х_MISSING: часть X (где X — номер) файла отсутствует в хранилище
- MD5_CHECKSUM_INVALID: контрольные суммы MD5 не совпадают
- PHOTO_INVALID_DIMENSIONS: размеры фотографии недействительны
- FIELD_NAME_INVALID: поле с именем FIELD_NAME недействительно
- FIELD_NAME_EMPTY: поле с названием FIELD_NAME отсутствует
- MSG_WAIT_FAILED: запрос, который должен быть выполнен перед обработкой текущего запроса, возвратил ошибку
- MSG_WAIT_TIMEOUT: запрос, который должен быть выполнен перед обработкой текущего запроса, еще не завершил обработку
401 ОШИБКА ДОСТУПА
Произошла попытка несанкционированного использования функций, доступных только авторизованным пользователям.
- AUTH_KEY_UNRIGN: Ключ не зарегистрирован в системе
- AUTH_KEY_INVALID: ключ недействителен
- USER_DEACTIVATED: пользователь удален / деактивирован
- SESSION_REVOKED: авторизация была аннулирована из-за того, что пользователь завершил все сеансы
- SESSION_EXPIRED: срок авторизации истек
- AUTH_KEY_PERM_EMPTY: метод недоступен для временного ключа авторизации, не привязан к постоянному
403 ЗАПРЕЩЕНО
Нарушение конфиденциальности. Например, попытка написать сообщение кому-то, кто занес текущего пользователя в черный список.
404 НЕ НАЙДЕНО
Попытка вызвать несуществующий объект, например метод.
406 NOT_ACCEPTABLE
Подобно 400 BAD_REQUEST , но приложение не должно отображать сообщения об ошибках для пользователя в пользовательском интерфейсе в результате этого ответа. Вместо этого сообщение об ошибке будет доставлено через updateServiceNotification.
420 FLOOD
Превышено максимально допустимое количество попыток вызвать данный метод с заданными входными параметрами. Например, при попытке запросить большое количество текстовых сообщений (SMS) на один и тот же номер телефона.
- FLOOD_WAIT_X: требуется ожидание X секунд (где X — число)
500 ВНУТРЕННИЙ
Произошла внутренняя ошибка сервера во время обработки запроса; например, произошел сбой при доступе к базе данных или файловому хранилищу.
Если клиент получает ошибку 500 или вы считаете, что эта ошибка не должна была возникнуть, пожалуйста, соберите как можно больше информации о запросе и ошибке и отправьте ее разработчикам.
Другие коды ошибок
Если сервер возвращает ошибку с кодом, отличным от перечисленных выше, это может рассматриваться как ошибка 500 и рассматриваться как внутренняя ошибка сервера.
Источник
Telegram пишет: “слишком много попыток повторите позже” – что делать?
Интенсивная жизнь в мессенджерах и социальных сетях имеет обратную сторону медали: порой так увлекаешься какими-либо действиями в сервисе, что система невольно начинает видеть в тебе спамера. Либо же дело не в поступках пользователя, а в изъянах программного кода площадки и глюках Интернета. Как результат – многие уже сталкивались с сообщением “слишком много попыток входа” от Телеграм. Об этой проблеме сегодня и поговорим, о ее причинах и способах решений.
Ну а перед началом хотим порекомендовать вам наш сервис смс-активации «Grizzly Sms». С его помощью вы можете приобрести виртуальные номера для любых мессенджеров и соцсетей, и с их помощью выполнить регистрацию и успешный вход на выбранные площадки. Всего от двух рублей за прием смс с кодом верификации! Вы гарантированно избавитесь от проблем, вроде “слишком много попыток”. Телеграм, Вконтакте, Гугл, Фейсбук – все популярные сервисы откроют перед вами двери просто, быстро и совершенно анонимно!
Много попыток входа в Телеграм: основные причины проблемы
Если вы столкнулись с предупреждением “слишком много попыток, повторите позже” от Телеграм, значит мгновением ранее вы выполняли одно из действий:
- Отправляли сообщения в мессенджере сверх установленного лимита;
- Пытались выполнить регистрацию в сервисе, но столкнулись с глюком;
- Входили/выходили из вашего аккаунта большее число раз, чем установлено системой.
Рассмотрим подробнее каждую ситуацию.
Ошибка Telegram: много попыток отправки сообщений
Если вы мегаактивный пользователь мессенджера и увлекаетесь частой отправкой коротких сообщений, готовьтесь получить сообщение от Телеграм “сожалеем, слишком много попыток, повторите позже”. Оно будет означать, что за минуту вы попытались отправить сообщений больше, чем установлено системным лимитом (т.е. более 50 сообщений).
Кроме того, если вы делаете рассылки рекламных сообщений, то на вас может пожаловаться другой пользователь, что также приведет к временному ограничению вашей активности.
Совет: не разбивайте длинные сообщения на части. А если действительно делаете рекламные рассылки, делайте их внутри надежной группы.
Ошибка Telegram “много попыток” в случае глюка системы безопасности
Когда серверы мессенджера перегружены, а при этом кто-то пытается создать в нем аккаунт, то возникает данный подвид ошибки, когда слишком много попыток от Телеграм добиться сообщения с кодом верификации. Пользователь, не дожидаясь смс с кодом, жмет по кнопке “Повторить”, и делает так несколько раз.
Такая же ситуация возникает при попытке входа в уже существующий аккаунт (что также происходит путем верификации по номеру телефона). В результате срабатывает система безопасности, которая расценивает ваши действия, как попытку взлома аккаунта.
Совет: если долго не приходит смс, не стоит запрашивать его повторно несколько раз у Телеграм. Слишком много попыток, повторите позже вход в систему (где-то через 10-15 минут).
Ошибка Telegram: много попыток входа/выхода
Если превысить лимит входа и выхода в одну учетку, то пользователь также столкнется с ограничением активности. Слишком много попыток в Телеграм выполнения данных действий может привести к бану на 24 часа, что весьма неприятно. Но не надо расстраиваться. По окончанию периода ограничения система вернет вам полный контроль над аккаунтом.
Если вы получили подобное уведомление от Телеграм “слишком много попыток”, как исправить ситуацию? К сожалению, в данном случае только время решит проблему.
Много попыток входа в Телеграм: сколько ждать?
Очень часто время играет важную роль, и каждый час, каждая минута или даже секунда важны. Поэтому многие, кто получил уведомление от Телеграм “слишком много попыток” сколько ждать захотят узнать. Сделать это можно в веб-версии мессенджера.
Вам потребуется открыть страницу web.telegram.org и попытаться войти в свой аккаунт. Данное действие не будет иметь успеха, но появится кнопка “показать технические данные”. Кликнув по ней, вы увидите запись “Flood_wait_XXXX”, где ХХХХ будет количеством оставшихся секунд ожидания до возможности успешного повторения входа.
Ну а если вы столкнулись с ситуацией, когда Телеграм пишет “слишком много попыток”, а у вас совершенно нет времени ждать окончания ограничения активности, то вот вам отличный способ разблокировать доступ к мессенджеру: создайте новый аккаунт при помощи виртуального номера от «Grizzly Sms». Это займет буквально пару минут и кликов, а стоит всего 13,5 рубля. Согласитесь, небольшая плата за доступ ко всем возможностям сервиса здесь и сейчас. На этом все, спасибо за внимание.
Источник