Точный онлайн REST API: вызов POST не работает

Я пытаюсь сделать почтовый звонок в Exact Online REST API. Я пытаюсь создать SalesInvoiceLine. Я могу прекрасно сделать вызов GET через мой браузер. Я вошел в Exact Online, поэтому мне не нужна аутентификация, поскольку она должна передаваться через cookie. Я попробовал POST через браузер. Браузер предлагает мне войти, когда я ничего не делаю. Я также попробовал это в Почтальоне:

Ошибка 401

Я на 100% уверен, что эти инициалы верны, я могу войти с ними в Exact Online. Что я делаю неправильно?

Если это не так, как я могу опубликовать данные в Exact Online? Существует не так много конкретных примеров, которые можно найти в Интернете.

1 ответ

Решение

Вы не можете войти в Exact Online REST API с обычной аутентификацией, режимом, который вы используете сейчас.

Веб-сервис использует OAuth в качестве механизма аутентификации, а это значит, что сначала вам нужно получить токен. Шаги для этого изложены в официальной документации.

С вашей стороны потребуется некоторая работа, чтобы зарегистрировать приложение, начать работу. В зависимости от потребностей вашего бизнеса, компания, в которой я работаю, может помочь вам с одним из приложений для Exact Online.

Вам нужно получить CurrentDivision через запрос GET https://{Base Uri}/api/v1/current/Me только от OAuth тогда нужно назначить CurrentDivision к чему бы то ни было вызов API .../api/v1/{CurrentDivision}/../..., Без авторизации с помощью Auth 2.0 ни одно невозможно.

Чтобы авторизовать вызовы ExactOnline API, вам необходимо сделать следующее:

  1. Зарегистрируйте приложение на портале разработчика. Имейте в виду, что вам необходимо пройти отдельную регистрацию для французской, британской или голландской версии ExactOnline (это действительно неприятно).
  2. Если вы хотите, чтобы ваше приложение использовалось другими учетными записями, кроме вашей, вам необходимо отправить приложение на проверку, обычно это занимает 2-3 недели.
  3. EO использует стандартную схему OAuth 2.0 (очень похожую на то, что Google использует со своими сервисами). Вы должны использовать конечную точку GET /api/oauth2/auth для создания ссылки авторизации и конечную точку POST /api/oauth2/token для получения токенов доступа и обновления.
  4. Имейте в виду, что многие службы Auth 2.0 предоставляют долговременный токен обновления. Это не относится к EO. Токен обновления становится недействительным каждый раз, когда запрашивается токен доступа (POST /api/oauth2/token конечной точки). С токеном доступа предоставляется новый токен обновления, поэтому убедитесь, что вы также обновили токен обновления.
  5. Маркер доступа помещается в заголовок HTTP как "Авторизация: носитель {{ACCESS_TOKEN}}".

Если вы хотите автоматизировать вызовы EO API и не хотите ничего кодировать самостоятельно, вы можете попробовать один из предварительно созданных коннекторов Exact Online API, созданных компанией, в которой я работаю.

Другие вопросы по тегам