gpt4 book ai didi

azure - 在业务中心获取 Azure Key Vault 的访问 token 时出错?

转载 作者:行者123 更新时间:2023-12-03 04:06:11 27 4
gpt4 key购买 nike

我尝试在正文中发布具有不同参数的 HTTP 请求,但收到消息“oauth2 错误 AADSTS90014:请求正文必须包含以下参数:'grant_type'”。通过 postman ,我能够获得具有相同参数的访问 token 。我不知道我在这里做错了什么。我还附上了屏幕截图。

如果有人可以帮助我。

JSONAddPair(vJsonObject, 'grant_type', 'client_credentials');
JSONAddPair(vJsonObject, 'client_id', 'client-id-here');
JSONAddPair(vJsonObject, 'client_secret', 'secret-here');
JSONAddPair(vJsonObject, 'scope', 'https://vault.azure.net/.default');
vJsonObject.WriteTo(Body);

URL := 'https://login.microsoftonline.com/' + DirectoryId + '/oauth2/v2.0/token';

vRequestContent.WriteFrom(Body);
vRequestContent.GetHeaders(vContentHeaders);
vContentHeaders.Clear();
vContentHeaders.Add('Content-Type', 'application/json');

vHttpRequestMessage.Method := 'POST';
vHttpRequestMessage.SetRequestUri(URL);
vHttpRequestMessage.Content := vRequestContent;

vHttpClient.Send(vHttpRequestMessage, vHttpResponseMessage);

vHttpResponseMessage.Content().ReadAs(ResponseText);
Message(ResponseText);

Post request through postman

error message

最佳答案

正如 @juunas 所说,您应该发布表单数据,而不是 JSON。试试这个:

URL := 'https://login.microsoftonline.com/' + DirectoryId + '/oauth2/v2.0/token';

vRequestContent.WriteFrom('grant_type=client_credentials&client_id=<client id here>&client_secret=<secret here>&scope=https://vault.azure.net/.default');
vRequestContent.GetHeaders(vContentHeaders);
vContentHeaders.Clear();
vContentHeaders.Add('Content-Type', 'application/x-www-form-urlencoded');

vHttpRequestMessage.Method := 'POST';
vHttpRequestMessage.SetRequestUri(URL);
vHttpRequestMessage.Content := vRequestContent;

vHttpClient.Send(vHttpRequestMessage, vHttpResponseMessage);

vHttpResponseMessage.Content().ReadAs(ResponseText);
Message(ResponseText);

如果您遇到一些错误,例如 secret 不正确,请对整个 http 请求内容进行 url 编码。

更新:将请求正文更改为纯文本后,此问题已得到解决

关于azure - 在业务中心获取 Azure Key Vault 的访问 token 时出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59818442/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com