我在PowerShell中运行了以下命令:curl.exe -X POST https://app.inventorum.com/api/auth/token/ -u '$CLIENTID:$CLIENTSECRET' -d 'grant_type=refresh_token&refresh_token=$REFRESHTOKEN'
它返回一个有效的新刷新和承载令牌。但在我的一生中,我无法在Excel中的VBA中完成这一任务:
Private Function getAccessToken() As String
Dim httpRequest As New WinHttpRequest
Dim apiUrl As String
apiUrl = "https://app.inventorum.com/api/auth/token/"
httpRequest.Open "POST", apiUrl
httpRequest.SetCredentials clientId, clientSecret, 0
httpRequest.send "grant_type=refresh_token&refresh_token=" & refreshToken
Debug.Print httpRequest.responseText
End Function返回的响应:{"error": "unsupported_grant_type"}
我不知道我做错了什么。我也无法在失眠症中做到这一点,但这是另外一个问题。
发布于 2022-10-22 20:58:47
你可以试试这样的东西。这是一个C#实现。
using System.Net.Http.Headers;
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://app.inventorum.com/api/auth/token/");
request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes("$CLIENTID:$CLIENTSECRET")));
request.Content = new StringContent("grant_type=refresh_token&refresh_token=$REFRESHTOKEN");
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();https://stackoverflow.com/questions/74165333
复制相似问题