我正在尝试与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()
,状态:400错误表示为HTTP / 1.1 400错误请求。
答案 0 :(得分:0)
对于任何有兴趣的人,我通过使用Postman来获取第一个访问权限并刷新令牌来解决此问题。然后,我使用刷新令牌获取新访问权限并使用以下代码刷新令牌:
a <- POST(url,
body = list(refresh_token = {refresh_token},
grant_type = "refresh_token", client_id = {client_id},
client_secret = {client_secret}),
encode = "form")
a.df <- as.data.frame(fromJSON(content(a,type="text")))
这将为您提供数据帧中的访问令牌,令牌类型,到期时间和刷新令牌。