Точный онлайн REST API: вызов POST не работает
Я пытаюсь сделать почтовый звонок в Exact Online REST API. Я пытаюсь создать SalesInvoiceLine. Я могу прекрасно сделать вызов GET через мой браузер. Я вошел в Exact Online, поэтому мне не нужна аутентификация, поскольку она должна передаваться через cookie. Я попробовал POST через браузер. Браузер предлагает мне войти, когда я ничего не делаю. Я также попробовал это в Почтальоне:
Я на 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, вам необходимо сделать следующее:
- Зарегистрируйте приложение на портале разработчика. Имейте в виду, что вам необходимо пройти отдельную регистрацию для французской, британской или голландской версии ExactOnline (это действительно неприятно).
- Если вы хотите, чтобы ваше приложение использовалось другими учетными записями, кроме вашей, вам необходимо отправить приложение на проверку, обычно это занимает 2-3 недели.
- EO использует стандартную схему OAuth 2.0 (очень похожую на то, что Google использует со своими сервисами). Вы должны использовать конечную точку GET /api/oauth2/auth для создания ссылки авторизации и конечную точку POST /api/oauth2/token для получения токенов доступа и обновления.
- Имейте в виду, что многие службы Auth 2.0 предоставляют долговременный токен обновления. Это не относится к EO. Токен обновления становится недействительным каждый раз, когда запрашивается токен доступа (POST /api/oauth2/token конечной точки). С токеном доступа предоставляется новый токен обновления, поэтому убедитесь, что вы также обновили токен обновления.
- Маркер доступа помещается в заголовок HTTP как "Авторизация: носитель {{ACCESS_TOKEN}}".
Если вы хотите автоматизировать вызовы EO API и не хотите ничего кодировать самостоятельно, вы можете попробовать один из предварительно созданных коннекторов Exact Online API, созданных компанией, в которой я работаю.