精确的在线REST API:POST调用不起作用

时间:2018-02-22 10:28:59

标签: api restful-authentication exact-online

我正在尝试在Exact Online REST API中进行调用。我正在尝试创建SalesInvoiceLine。我可以通过我的浏览器完美地进行GET调用。我在Exact Online登录,所以我不需要身份验证,因为这应该通过cookie传递。我通过浏览器尝试过POST。当我什么都没发生时,浏览器会提示我登录。我也在Postman中试过这个:

Error 401

我100%确定这些缩写是正确的,我可以在Exact Online中使用它们登录。我做错了什么?

如果不是这样,我如何将数据发布到Exact Online?在网上找不到那么多具体的例子。

3 个答案:

答案 0 :(得分:0)

您无法使用基本身份验证(即您现在使用的模式)登录Exact Online REST API。

Web服务使用OAuth作为身份验证机制,这意味着您必须先获取令牌。 the official documentation中列出了执行此操作的步骤。

您需要做一些工作来注册应用程序,启动并运行流程。根据您的业务需求,我可能会为我所工作的公司one of the apps for Exact Online提供帮助。

答案 1 :(得分:0)

您仅需要通过OAuth通过GET请求CurrentDivision来获取https://{Base Uri}/api/v1/current/Me,然后需要分配 CurrentDivision到任何API调用.../api/v1/{CurrentDivision}/../...。 没有Auth 2.0的授权,这两者都是不可能的。

enter image description here

答案 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. 访问令牌以“授权:承载{{ACCESS_TOKEN}}”的形式放置在HTTP标头中

如果您想自动化EO API调用并且不想自己编写任何代码,可以尝试使用我工作的公司创建的pre-build Exact Online API connectors之一。