gpt4 book ai didi

使用 Indy HTTP 的 Delphi Google oauth2 token 请求得到 400 错误请求

转载 作者:行者123 更新时间:2023-12-03 15:34:42 30 4
gpt4 key购买 nike

我尝试使用 oauth2 向 Google 请求访问和刷新 token ,但收到的只是“HTTP/1.1 400 Bad Request”错误。

我在 Delphi XE5 中使用 IdHTTP 和 IdSSLIOHandlerSocketOpenSSL 处理程序。我已经获得了我的客户端 ID、客户端 key 和 API key 。我有授权码。

IdHTTP 已配置:

AllowCookies = True
HandleRedirects = True
HTTPOptions.hoKeepOrigProtocol = True
HTTPOptions.hoNoProtocolErrorException = True

其他一切都是默认的。

我应该事先做些什么吗,例如身份验证?

创建 Win32 应用程序时,redirect_uri 有何相关性?

我们将感激地接受所有帮助。

这是我的代码:

var  Params: TStringList;
Resp: TStringStream;
URI: String;
begin

Params := TStringList.Create;
Resp := TStringStream.Create;

try
URI := 'https://accounts.google.com/o/oauth2/token';

Params.Add('client_id=' + clientID);
Params.Add('client_secret=' + clientSecret);
Params.Add('code=' + authCode);
Params.Add('redirect_uri=http://localhost');
Params.Add('grant_type=authorization_code');

IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
IdHTTP.Post(URI, Params, Resp);

Memo1.Lines.LoadFromStream(Resp);
Memo1.Lines.Insert(0, IdHTTP.ResponseText);

finally
FreeAndNil(Params);
FreeAndNil(Resp);
end;

end;

编辑:

我将 Accept header 更改为我在其他地方找到的设置。
我将 charset=utf-8 添加到 Content-Type。
我替换了 clientIDclientSecret

这是 IdHTTP 发送的内容:

POST /o/oauth2/token HTTP/1.1<br>
Content-Type: application/x-www-form-urlencoded; charset=utf-8<br>
Content-Length: 240<br>
Host: accounts.google.com<br>
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8<br>
Accept-Encoding: identity<br>
User-Agent: Mozilla/3.0 (compatible; Indy Library)<br>

client_id=clientID&client_secret=clientSecret&code=4%2FtmTyuvpcSMIkoyJcFmicfXQEDpYiw_QilkO2dXv_nUc&redirect_uri=http%3A%2F%2Flocalhost&grant_type=authorization_code

最佳答案

我解决了!

印地就是问题所在。

我改用 synapse 4.0 组件,并在 10 分钟内完成工作。

那是我再也回不来的一天半了。谢谢印地:(

关于使用 Indy HTTP 的 Delphi Google oauth2 token 请求得到 400 错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34271698/

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