【发布时间】:2018-05-05 18:49:46
【问题描述】:
我正在尝试与 Exact Online API 建立连接,并按照 Exact Online 社区页面中列出的步骤进行操作:https://support.exactonline.com/community/s/knowledge-base#All-All-DNO-Task-oauth-eol-oauth-dev-oauth2tut。
我设法完成了第 1 步和第 2 步。也就是说,我收到了示例中列出的授权代码:“实际响应: https://www.mycompany.com/myapplication?code=XTzM!IAAAACbPTzQJXwFhM..."
我必须在第 3 步中使用此代码,但我似乎无法使其正常工作。我使用了所有列出的参数,但得到的响应是:
Response [https://start.exactonline.nl/api/oauth2/token]
Date: 2018-04-14 10:58
Status: 400
Content-Type: text/html
Size: 11 B
我不知道我做错了什么。我用于第 3 步的代码是:
url <- "https://start.exactonline.nl/api/oauth2/token"
POST(url, add_headers("Content-type" = "application/x-www-form-urlencoded"),
body = list(code="[CODE_FROM_STEP_2]",
redirect_uri="[MY_WEBSITE_URI]", client_id="[MY_CLIENT_ID]",
client_secret="[MY_CLIENT_SECRET]", grant_type="authorization_code"))
如果有人可以帮助我解决这个问题,我将非常感激!谢谢。
编辑:在 POST 调用中使用 verbose(),Status: 400 错误声明为 HTTP/1.1 400 Bad Request。
【问题讨论】:
-
据我所知,您需要将代码交换为刷新令牌。该过程在cloud.invantive.com 上的文档中进行了描述,但您应该在您自己的受信任设备上执行这些步骤,因为该站点仅适用于有兴趣的用户。请注意,但可能已经知道,随着所有用户即将推出所需的 2FA,令牌允许您在每次连接时无需 2FA 即可访问 Exact Online。
-
我基本上会做该文档中列出的事情。我必须在浏览器上登录 Exact Online,然后我会被重定向到重定向 URI。 URL 中有这样的代码:example.com/?code=pTvE%21IAAAAAdXxoeXk46U........ 所以我在我的 POST 代码中使用该 URL 中的代码,但它一直给我相同的响应(错误状态 400)。跨度>
-
参见auth0.com/docs/api-auth/tutorials/authorization-code-grant 或云端的第 2 步。 Invantive com 网站检查不同的重定向 Uri 复选框。代码授权流程还有一个额外的步骤。
-
当您只需要临时使用的数据时,您还可以在 data-access-point.com 上使用带有用户名/密码、sql 查询和所需输出格式(如 Sjon)的 url。
-
我阅读了 auth0.com/docs/api-auth/tutorials/authorization-code-grant 但仍然不知道为什么我的代码不起作用。
标签: r oauth oauth-2.0 exact-online