我需要经过OAuth2流程的ExactOnline为ExactOnline访问令牌的时候,但我卡住的文档(https://developers.exactonline.com/#OAuth_Tutorial.html%3FTocPath%3DAuthentication%7C_____2)的第3步400错误的请求获得使用RestSharp
使用邮差我创建了下面的C#代码Chrome应用程序测试HTTP请求,但不断收到400错误(错误的请求)。邮差应用程序也给了我400错误,但无论我设置了什么设置,我似乎总是得到400错误。
var authToken = "veryyyyyylongtoken";
var redirectUri = "the-url-I-set-in-the-dashboard";
var grantType = "authorization_code";
var clientId = "id-guid";
var clientSecret = "secret";
var exactAccesTokenRequestEndpoint = "https://start.exactonline.nl/api/oauth2/token";
var client = new RestClient(exactAccesTokenRequestEndpoint);
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("application/x-www-form-urlencoded", String.Format("code={0}&redirect_uri={1}&grant_type={2}&client_id={3}&client_secret={4}", authToken, exactAccesTokenRequestEndpoint, grantType, clientId, clientSecret), ParameterType.RequestBody);
var response = client.Execute(request);
这段代码是怎么错了?
在Exact注册的应用程序正在测试模式下运行,而不是生产。
任何想法?
=====编辑=====
基于古斯曼的指针,我改变了代码以下内容。这仍然给400错误。
var client = new RestClient(exactAccesTokenRequestEndpoint);
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("code", authToken, ParameterType.RequestBody);
request.AddParameter("redirect_uri", redirectUri, ParameterType.RequestBody);
request.AddParameter("grant_type", grantType, ParameterType.RequestBody);
request.AddParameter("client_id", clientId, ParameterType.RequestBody);
request.AddParameter("client_secret", clientSecret, ParameterType.RequestBody);
var response = client.Execute(request);
请不要编辑你的问题的答案。 –
然后解释该代码的目的是什么。或者这是一个后续问题,这应该是一个新问题。 –
我做到了:-)。在下面的评论中,Gusman的回答也是如此。 – Corstiaan