Справочник ошибок и ответов API
При выполнении некорректного запроса к системе наше API может вернуть код ошибки, в случае же верного запроса, API вернёт ответ. Вы, конечно, уже обрабатывали ответ сервера в ходе отладки своих виджетов или написании скриптов, взаимодействующих с нашей системой. Для Вашего удобства, мы решили систематизировать все возможные ответы и ошибки, отдаваемые нашей системой и разместить их на отдельной странице. Надеемся это облегчит и ускорит интеграцию Ваших проектов с amoCRM.
Ошибки при валидации данных
Если переданные данные не совпадают с теми, что доступны для сущности, запрос вернет HTTP-код 400 Bad Request и массив с параметрами, которые не подошли под условия.
Пример ошибки валидации данных
{
"validation-errors": [
{
"request_id": "0",
"errors": [
{
"code": "NotSupportedChoice",
"path": "custom_fields_values.0.field_id",
"detail": "The value you selected is not a valid choice."
}
]
}
],
"title": "Bad Request",
"type": "https://httpstatus.es/400",
"status": 400,
"detail": "Request validation failed"
}
Ответы при авторизации
Подробнее об авторизации читайте здесь
Код | HTTP код | Описание |
---|---|---|
110 | 401 Unauthorized | Общая ошибка авторизации. Неправильный логин или пароль. |
111 | 401 Unauthorized | Возникает после нескольких неудачных попыток авторизации. В этом случае нужно авторизоваться в аккаунте через браузер, введя код капчи. |
112 | 401 Unauthorized | Возникает, когда пользователь выключен в настройках аккаунта “Пользователи и права” или не состоит в аккаунте. |
113 | 403 Forbidden | Доступ к данному аккаунту запрещён с Вашего IP адреса. Возникает, когда в настройках безопасности аккаунта включена фильтрация доступа к API по “белому списку IP адресов”. |
101 | 401 Unauthorized | Возникает в случае запроса к несуществующему аккаунту (субдомену). |
Ответы при работе с контактами
Подробнее о работе с контактами читайте здесь
Код | Описание |
---|---|
202 | Добавление контактов: нет прав |
203 | Добавление контактов: системная ошибка при работе с дополнительными полями |
205 | Добавление контактов: контакт не создан |
212 | Обновление контактов: контакт не обновлён |
219 | Список контактов: ошибка поиска, повторите запрос позднее |
330 | Добавление/Обновление контактов: количество привязанных сделок слишком большое |
Ответы при работе со сделками
Подробнее о работе со сделками читайте здесь
Код | Описание |
---|---|
330 | Добавление/Обновление сделок: количество привязанных контактов слишком большое |
Ответы при работе с событиями
Подробнее о работе с событиями читайте здесь
Код | Описание |
---|---|
244 | Добавление событий: недостаточно прав для добавления события |
225 | Обновление событий: события не найдены |
Ответы при работе с задачами
Подробнее о работе с задачами читайте здесь
Код | Описание |
---|---|
231 | Обновление задач: задачи не найдены |
233 | Добавление событий: по данному ID элемента не найдены некоторые контакты |
234 | Добавление событий: по данному ID элемента не найдены некоторые сделки |
235 | Добавление задач: не указан тип элемента |
236 | Добавление задач: по данному ID элемента не найдены некоторые контакты |
237 | Добавление задач: по данному ID элемента не найдены некоторые сделки |
244 | Добавление сделок: нет прав. |
Ответы при работе со списками
Подробнее о работе со списками читайте здесь
Код | Описание |
---|---|
244 | Добавление/Обновление/Удаление каталогов: нет прав. |
281 | Каталог не удален: внутренняя ошибка |
282 | Каталог не найден в аккаунте. |
Ответы при работе с элементами каталога
Подробнее о работе с элементами каталога читайте здесь
Код | Описание |
---|---|
203 | Добавление/Обновление элементов каталога: системная ошибка при работе с дополнительными полями |
204 | Добавление/Обновление элементов каталога: дополнительное поле не найдено |
244 | Добавление/Обновление/Удаление элементов каталога: нет прав. |
280 | Добавление элементов каталога: элемент создан. |
282 | Элемент не найден в аккаунте. |
Ответы при работе с покупателями
Подробнее о работе с покупателями читайте здесь
Код | Описание |
---|---|
288 | Недостаточно прав. Доступ запрещен. |
402 | Необходимо оплатить функционал |
425 | Функционал недоступен |
426 | Функционал выключен |
Другие ответы
Ошибки и ответы, не относящиеся к какому-либо конкретному разделу
Код | Описание | Примечание |
---|---|---|
400 | Неверная структура массива передаваемых данных, либо не верные идентификаторы кастомных полей | |
422 | Входящие данные не мог быть обработаны. | |
405 | Запрашиваемый HTTP-метод не поддерживается | |
402 | Подписка закончилась | Вместе с этим ответом отдаётся HTTP код №402 “Payment Required” |
403 | Аккаунт заблокирован, за неоднократное превышение количества запросов в секунду | Вместе с этим ответом отдаётся HTTP код №403 |
429 | Превышено допустимое количество запросов в секунду | Вместе с этим ответом отдаётся HTTP код №429 |
2002 | По вашему запросу ничего не найдено | Вместе с этим ответом отдаётся HTTP код №204 “No Content” |
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.
Already on GitHub?
Sign in
to your account
Closed
Kordak opened this issue
Apr 1, 2021
· 3 comments
Closed
Отозван токен. Почему и что с этим делать?
#269
Kordak opened this issue
Apr 1, 2021
· 3 comments
Comments
AmoCRM\OAuth2\Client\Provider\AmoCRMException: Некорректный запрос: В запросе отсутствует ряд параметров или параметры невалидны (Token has been revoked) in /home/host1749169/vendor/amocrm/oauth2-amocrm/src/AmoCRMException.php:28 Stack trace: #0 /home/host1749169/vendor/amocrm/oauth2-amocrm/src/AmoCRM.php(163): AmoCRM\OAuth2\Client\Provider\AmoCRMException::errorResponse(Object(GuzzleHttp\Psr7\Response), Array) #1 /home/host1749169/vendor/league/oauth2-client/src/Provider/AbstractProvider.php(628): AmoCRM\OAuth2\Client\Provider\AmoCRM->checkResponse(Object(GuzzleHttp\Psr7\Response), Array) #2 /home/host1749169/vendor/league/oauth2-client/src/Provider/AbstractProvider.php(537): League\OAuth2\Client\Provider\AbstractProvider->getParsedResponse(Object(GuzzleHttp\Psr7\Request)) #3 /home/host1749169/host1749169.hostland.pro/htdocs/www/test_amo/index.php(155): League\OAuth2\Client\Provider\AbstractProvider->getAccessToken(Object(League\OAuth2\Client\Grant\RefreshToken), Array) #4 /home/host1749169/host1749169.hostland.pro/htdocs/www/cleanwl/public/form/back/salaryFormback.php(13): include(‘/home/host17491…’) #5 /home/host1749169/host1749169.hostland.pro/htdocs/www/cleanwl/public/form/salaryForm.php(13): include(‘/home/host17491…’) #6 {main}
Refresh токен долгоживущий, но одноразовый. Скорее всего у вас несколько инстансов работают от одного пользователя и при обновлении Access токена по Refresh токену, инстансы «воруют» друг у друга refresh токены. В общем кто первый встал, того и тапки.
Варианты решения:
- глобальное хранилище токенов для всех инстансов
- инстансы работают от имени разных пользователей.
Refresh токен долгоживущий, но одноразовый. Скорее всего у вас несколько инстансов работают от одного пользователя и при обновлении Access токена по Refresh токену, инстансы «воруют» друг у друга refresh токены. В общем кто первый встал, того и тапки.
Варианты решения:
- глобальное хранилище токенов для всех инстансов
- инстансы работают от имени разных пользователей.
Где же взять информацию о том, как устроить это самое глобальное хранилище?
Место куда сохраняются токены и откуда читаются должно быть единым для всех инстансов вашего приложения, работающих из-под одного пользователя. Конкретная реализация на ваше усмотрение: сетевой диск, база данных или что-нибудь типа memcache.
Ошибки в программировании происходят часто, и одной из самых частых ошибок является «ошибка неверного значения токена». Токен — это набор символов, обозначающих определенный тип данных или операцию. Неверное значение токена означает, что программа не может распознать символ или комбинацию символов, что приводит к сбою программы.
Ошибки неверного значения токена могут возникать при работе с языками программирования, такими как JavaScript, Python, PHP, Ruby и другими. Они могут возникнуть, если вы допустили опечатку, не правильно заключили данные в кавычки, использовали неверный синтаксис или использовали символы, которые не поддерживаются языком программирования.
Чтобы исправить ошибку с неверным значением токена, вам необходимо внимательно изучить код и выявить ошибку. Если же вы не можете найти ошибку, попробуйте использовать дополнительные инструменты, например, отладчик, чтобы выявить ошибку. Также важно проверить, было ли использование токена правильно обрамлено кавычками и соответствует ли его тип тому, который вы пытаетесь использовать в коде.
Содержание
- Неверное значение токена: в чем причина и как это исправить
- Причины возникновения ошибки:
- Как исправить ошибку:
Неверное значение токена: в чем причина и как это исправить
Неверное значение токена — это частая ошибка в работе с API, протоколами авторизации и веб-приложениями. Причиной возникновения этой ошибки может быть неправильно указанный токен доступа к API или просроченный токен. Это может произойти, если токен не был выдан или был отозван сервером, а также при ошибке при отправке запроса с токеном.
Чтобы исправить ошибку Неверное значение токена, необходимо сначала проверить правильность указания токена. Проверьте, выдан ли токен и не истек ли его срок действия. Если вы уверены в правильности данный, попробуйте сменить токен на новый и попробуйте повторить запрос. Если эти действия не помогут, проверьте правильность написания запроса. Может быть, в вашем запросе есть опечатка или ошибка.
Для того чтобы избежать ошибки Неверное значение токена, следуйте инструкциям по получению токена, которые даны в API. Убедитесь, что вы используете токен с правильными правами и сроком действия. При отправке запросов, проверьте правильность указания токена и соблюдайте требования протокола авторизации и API.
Неверное значение токена может также быть связано с ошибками в базе данных. При возникновении этой ошибки, ситуация может быть восстановлена с помощью перезапуска сервера, удаления кэша или обновления базы данных. Если ничего из перечисленного не помогло, обратитесь к документации API, чтобы уточнить возможные причины ошибки.
Причины возникновения ошибки:
1. Неверный токен. Ошибка может возникнуть, если вы использовали неправильный токен в своем коде. Для исправления ошибки необходимо убедиться, что токен, который вы используете, действительно верный и не просрочен.
2. Истекший токен. Если ваш токен просрочен, то это может привести к ошибке. Для решения проблемы нужно создать новый токен и заменить им старый в своем коде.
3. Неправильные настройки разрешений. Ошибка может возникнуть, если у вас недостаточно разрешений для выполнения определенных операций с токеном. В таком случае нужно проверить настройки своего аккаунта и предоставить необходимые разрешения.
4. Проблемы с авторизацией. Если при авторизации произошла ошибка, то это может привести к ошибке с токеном. Для ее исправления нужно проверить правильность входных данных при авторизации.
5. Несовместимость версий API. В случае несовместимости версий API с использованным токеном может возникнуть ошибка. Для исправления нужно обновить версию API и проверить настройки токена.
Важно: | некоторые причины возникновения ошибки с токеном могут быть связаны с неправильным форматированием кода или некорректными настройками самого приложения, которое использует токен. |
Как исправить ошибку:
Если вы столкнулись с ошибкой «Неверное значение токена», то первое, что следует сделать — пройти по всему коду и убедиться, что он написан правильно. Не допускайте ошибок при написании тегов, атрибутов и значений.
Во-вторых, убедитесь, что используемая версия языка соответствует версии, которую поддерживает сервер. Если вы используете новый функционал, который не поддерживается сервером, то сервер не сможет правильно обработать ваш код.
Если вы уверены, что код написан правильно и версия языка соответствует поддерживаемой сервером, то попробуйте удалить кэш и временные файлы. Затем перезагрузите страницу и попробуйте еще раз.
Если ничего из вышеперечисленного не помогло, то попробуйте использовать другой инструмент для разработки. Если вы используете интегрированную среду разработки, то можете попробовать использовать отдельный редактор кода.
Если все вышеперечисленное не помогло исправить ошибку, то обратитесь за помощью к профессионалам в области веб-разработки.
ArturDoo
07.05.21
✎
11:25
Как работает HTTPСоединение? Читал СП, там ничего дельного.
Создаю соединение:
Соединение = Новый HTTPСоединение(ПараметрыПодключения[Перечисления.ns_ВидыНастроекCRM.Subdomain],,ПараметрыПодключения[Перечисления.ns_ВидыНастроекCRM.USER_LOGIN],ПараметрыПодключения[Перечисления.ns_ВидыНастроекCRM.USER_PASSWORD],,, SSL);
И отправляю запрос:
HTTPЗапрос=Новый HTTPЗапрос(«/api/v4/contacts»);
Ответ=Соединение.ВызватьHTTPМетод(«GET»,HTTPЗапрос);
Выдаёт 401 ошибку
Kassern
07.05.21
✎
11:38
(0) я же тебе написал в прошлой ветке, что надо сделать
Kassern
07.05.21
✎
11:38
(1) передай в заголовках твой эксес токен
ArturDoo
07.05.21
✎
12:07
Обновлен ключ сессии, повторите запрос. Код состояния = 401
{
«detail»: «Неверный логин или пароль»,
«status»: 401,
«type»: «https://httpstatus.es/401»,
«title»: «Unauthorized»
}
написал так :
ЗначениеAccessToken = ПараметрыПодключения[Перечисления.ns_ВидыНастроекCRM.AccessToken];
AccessToken = Новый Соответствие;
AccessToken.Вставить(AccessToken, ЗначениеAccessToken);
HTTPЗапрос=Новый HTTPЗапрос(«/api/v4/contacts»,AccessToken);//Заголвки указать если нужно
Ответ=Соединение.ВызватьHTTPМетод(«GET»,HTTPЗапрос);
Kassern
07.05.21
✎
12:10
(3) AccessToken.Вставить(AccessToken, ЗначениеAccessToken); это как так то? ты в ключ пихаешь соответствие. И где ты прочитал в апишке, что ключ должен называться «AccessToken»? Я же тебе даже скинул в прошлой ветке какой ключ тебе нужен.
ArturDoo
07.05.21
✎
12:20
(4)Вод документация по контрагентам, там ни слова про атокен https://www.amocrm.com/developers/content/api_v4/contacts-api/
Куда его пихать?
Kassern
07.05.21
✎
12:32
(5) Наверное надо прочитать то, что до этого написано, например как работать по шагам и особенно обратить внимание на 5 шаг. А то что вы скинули, это уже после того, как получили токен и передали его в заголовки.
https://www.amocrm.ru/developers/content/oauth/step-by-step
Kassern
07.05.21
✎
12:33
(5) откройте уже предыдущую тему и прочтите, что я вам написал
Kassern
07.05.21
✎
12:35
(7) Все же по русски написано:
C помощью полученного Access токена вы можете легко делать запросы к API приложения. Для этого потребуется немного изменить запросы, которые сейчас делаются к API.
Вам не нужно больше отправлять куки-файлы с каждым запросом, а также авторизовываться с параметрами USER_LOGIN и USER_HASH, вместо этого необходимо добавить заголовок Authorization: Bearer {access токен}.
И даже пример есть на php:
$headers = [
‘Authorization: Bearer ‘ . $access_token
];
Kassern
07.05.21
✎
12:37
(8) такое ощущение, что не вы писали аунтификацию для этого ресурса, а работаете с чьим что куском кода и пытаетесь его заставить работать на нужные вам методы.
При выполнении некорректного запроса к системе наше API может вернуть код ошибки, в случае же верного запроса, API вернёт ответ.
Вы, конечно, уже обрабатывали ответ сервера в ходе отладки своих виджетов или написании скриптов, взаимодействующих с нашей системой.
Для Вашего удобства, мы решили систематизировать все возможные ответы и ошибки, отдаваемые нашей системой и разместить их на отдельной странице.
Надеемся это облегчит и ускорит интеграцию Ваших проектов с amoCRM.
Ответы при авторизации
Подробнее об авторизации читайте здесь
CODE | HTTP CODE | ERROR | DESCRIPTION |
---|---|---|---|
110 | 401 Unauthorized | Неправильный логин или пароль | Общая ошибка авторизации. |
111 | 401 Unauthorized | Неправильный код капчи |
Возникает после нескольких неудачных попыток авторизации. В этом случае нужно авторизоваться в аккаунте через браузер, введя код капчи. |
112 | 401 Unauthorized | Пользователь не состоит в данном аккаунте |
Возникает, когда пользователь выключен в настройках аккаунта «Пользователи и права» или не состоит в аккаунте. |
113 | 403 Forbidden | Доступ к данному аккаунту запрещён с Вашего IP адреса |
Возникает, когда в настройках безопасности аккаунта включена фильтрация доступа к API по «белому списку IP адресов». |
101 | 401 Unauthorized | Account not found | Возникает в случае запроса к несуществующему аккаунту (субдомену). |
401 | 401 Not Authorized | 401 Unauthorized | На сервере нет данных аккаунта. Нужно сделать запрос на другой сервер по переданному IP. |
Ответы при работе с аккаунтом
Подробнее о работе с аккаунтом читайте здесь
CODE | DESCRIPTION |
---|---|
101 | Аккаунт не найден |
102 | POST-параметры должны передаваться в формате JSON |
103 | Параметры не переданы |
104 | Запрашиваемый метод API не найден |
Ответы при работе с контактами
Подробнее о работе с контактами читайте здесь
CODE | DESCRIPTION |
---|---|
201 | Добавление контактов: пустой массив |
202 | Добавление контактов: нет прав |
203 | Добавление контактов: системная ошибка при работе с дополнительными полями |
204 | Добавление контактов: дополнительное поле не найдено |
205 | Добавление контактов: контакт не создан |
206 | Добавление/Обновление контактов: пустой запрос |
207 | Добавление/Обновление контактов: неверный запрашиваемый метод |
208 | Обновление контактов: пустой массив |
209 | Обновление контактов: требуются параметры «id» и «last_modified» |
210 | Обновление контактов: системная ошибка при работе с дополнительными полями |
211 | Обновление контактов: дополнительное поле не найдено |
212 | Обновление контактов: контакт не обновлён |
219 | Список контактов: ошибка поиска, повторите запрос позднее |
Ответы при работе со сделками
Подробнее о работе со сделками читайте здесь
CODE | DESCRIPTION |
---|---|
213 | Добавление сделок: пустой массив |
214 | Добавление/Обновление сделок: пустой запрос |
215 | Добавление/Обновление сделок: неверный запрашиваемый метод |
216 | Обновление сделок: пустой массив |
217 | Обновление сделок: требуются параметры «id», «last_modified», «status_id», «name» |
240 | Добавление/Обновление сделок: неверный параметр «id» дополнительного поля |
Ответы при работе с событиями
Подробнее о работе с событиями читайте здесь
CODE | DESCRIPTION |
---|---|
218 | Добавление событий: пустой массив |
221 | Список событий: требуется тип |
222 | Добавление/Обновление событий: пустой запрос |
223 | Добавление/Обновление событий: неверный запрашиваемый метод (GET вместо POST) |
224 | Обновление событий: пустой массив |
225 | Обновление событий: события не найдены |
Ответы при работе с задачами
Подробнее о работе с задачами читайте здесь
CODE | DESCRIPTION |
---|---|
227 | Добавление задач: пустой массив |
228 | Добавление/Обновление задач: пустой запрос |
229 | Добавление/Обновление задач: неверный запрашиваемый метод |
230 | Обновление задач: пустой массив |
231 | Обновление задач: задачи не найдены |
232 | Добавление событий: ID элемента или тип элемента пустые либо неккоректные |
233 | Добавление событий: по данному ID элемента не найдены некоторые контакты |
234 | Добавление событий: по данному ID элемента не найдены некоторые сделки |
235 | Добавление задач: не указан тип элемента |
236 | Добавление задач: по данному ID элемента не найдены некоторые контакты |
237 | Добавление задач: по данному ID элемента не найдены некоторые сделки |
238 | Добавление контактов: отсутствует значение для дополнительного поля |
244 | Добавление сделок: нет прав. |
Другие ответы
Ошибки и ответы, не относящиеся к какому-либо конкретному разделу
CODE | DESCRIPTION | NOTE |
---|---|---|
400 | Неверная структура массива передаваемых данных, либо не верные идентификаторы кастомных полей | |
403 | Аккаунт заблокирован, за неоднократное превышение количества запросов в секунду | Вместе с этим ответом отдаётся HTTP код №403 |
429 | Превышено допустимое количество запросов в секунду | Вместе с этим ответом отдаётся HTTP код №429 |
2002 | По вашему запросу ничего не найдено | Вместе с этим ответом отдаётся HTTP код №204 «No Content» |