Как исправить ошибку 401 при подключении к API «Мой класс»
При попытке подключиться к API CRM «Мой класс» с помощью Python и библиотеки requests вы можете столкнуться с ошибкой 401 Unauthorized и сообщением "x-access-token is invalid". Это означает, что сервер не признаёт переданный токен доступа. Разберём основные причины и способы решения проблемы.
Причины ошибки 401 Unauthorized
Ошибка 401 свидетельствует о проблемах с аутентификацией. В API «Мой класс» используется токен доступа, передаваемый в заголовке x-access-token. Вот самые частые причины:
- Недействительный токен: вы скопировали токен, который уже был отозван или истёк.
- Неправильное копирование: токен содержит лишние пробелы, кавычки или символы.
- Токен от другого пользователя: если токен не принадлежит вашему аккаунту, доступ будет запрещён.
Как получить и проверить токен для API
Чтобы работать с API «Мой класс», нужно сгенерировать новый токен в личном кабинете CRM. Зайдите в раздел Настройки → API-токены и создайте новый токен с нужными правами. Скопируйте его целиком, без лишних символов.
Пример корректного кода на Python
Убедитесь, что ваш код выглядит так:
import requests
token = "ваш_актуальный_токен" # без кавычек внутри строки
headers = {
"x-access-token": token
}
response = requests.get("https://api.moyklass.com/v1/company/classes", headers=headers)
print(response.status_code)
print(response.text)Важно: токен должен быть строкой без лишних кавычек и пробелов. Если вы скопировали его из документации или сайта, проверьте, не добавились ли кавычки автоматически.
Дополнительные проверки
Если после замены токена ошибка сохраняется, выполните следующие шаги:
- Убедитесь, что ваш аккаунт имеет доступ к API (возможно, требуется платный тариф).
- Проверьте, не истёк ли срок действия токена - некоторые токены живут ограниченное время.
- Попробуйте отправить запрос через Postman или cURL, чтобы исключить проблемы с кодом.
Пример запроса через cURL:
curl -H "x-access-token: ваш_токен" https://api.moyklass.com/v1/company/classesЕсли cURL возвращает те же 401, проблема точно в токене или правах аккаунта.
Что делать, если токен правильный, но ошибка остаётся
Иногда сервер может блокировать запросы по другим причинам:
- Превышен лимит запросов (rate limit) - подождите несколько минут.
- Неправильный URL эндпоинта - проверьте документацию API «Мой класс».
- Проблемы с SSL-сертификатом - добавьте параметр
verify=False(не рекомендуется для продакшена).
Если ничего не помогает, обратитесь в поддержку CRM «Мой класс» - возможно, на вашем аккаунте отключён доступ к API.