You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Delphi调用eBay Sellers API获取Access Token时出现500错误

解决Delphi调用eBay Sellers API获取Access Token时的500错误

碰到500服务器错误确实挺闹心的,我帮你排查了代码里的几个关键问题,调整后应该能正常获取token了:

核心问题分析

  • 请求方法不对:获取OAuth token必须用POST方法,但你的代码没显式设置,RESTRequest默认会用GET,服务器自然没法正确处理。
  • Base64编码出错:生成Authorization头时,你编码的是vClientId+vClientSecret,但正确格式应该是客户端ID:客户端密钥,漏了中间的冒号,导致授权信息无效。
  • 参数转义错误:请求体里用了&分隔参数,这是HTML转义后的符号,在application/x-www-form-urlencoded格式里直接用&就好。
  • 多余参数干扰:client_credentials模式不需要redirect_uri参数,这个是给授权码流程用的,多传反而可能让服务器处理出错。
  • 组件实例重复创建:你已经在表单上放了RESTClient组件,没必要在代码里重新Create,这会导致实例混乱,直接用已有的组件就行。

修正后的完整代码

procedure TForm5.btn1Click(Sender: TObject);
var
  vClientId, vClientSecret : string;
  vBase64: String;
begin
  vClientId := 'jackjump-proba-SBX-15d7a0307-68d66d5a';
  vClientSecret := ':SBX-5d7a03073f13-cb20-4a72-b71e-4e53';
  
  // 正确生成Basic Auth的Base64编码:客户端ID + 冒号 + 客户端密钥
  vBase64 := 'Basic ' + TNetEncoding.Base64.Encode(vClientId + ':' + vClientSecret);
  // 移除编码后可能出现的换行符
  vBase64 := StringReplace(vBase64, sLineBreak, '', [rfReplaceAll]);

  // 使用表单上已有的RESTClient实例,无需重新创建
  RESTClient1.BaseURL := 'https://api.sandbox.ebay.com/';
  
  RESTRequest1.Resource := 'identity/v1/oauth2/token';
  // 必须设置为POST方法
  RESTRequest1.Method := rmPOST;
  
  // 清空旧参数,避免重复添加导致的问题
  RESTRequest1.Params.Clear;
  RESTRequest1.AddParameter('Content-Type', 'application/x-www-form-urlencoded', pkHTTPHEADER);
  RESTRequest1.AddParameter('Authorization', vBase64, pkHTTPHEADER);
  
  // 构建正确的请求体,移除多余的redirect_uri参数
  RESTRequest1.Body.Clear;
  RESTRequest1.Body.Add('grant_type=client_credentials&scope=https://api.ebay.com/oauth/api_scope');
  
  try
    RESTRequest1.Execute;
    // 执行成功后,从响应中获取token数据
    ShowMessage('获取成功:' + RESTResponse1.Content);
  except
    on E: Exception do
      ShowMessage('请求出错:' + E.Message);
  end;
end;

额外小提示

  • 执行成功后,你可以解析RESTResponse1.Content里的JSON数据,提取出access_token字段使用。
  • 加上异常捕获能帮你更清晰地看到错误细节,不至于只收到模糊的500提示。
  • 确认你的客户端ID和密钥是沙箱环境的有效凭据,别不小心用了生产环境的信息。

内容的提问来源于stack exchange,提问作者Jack Jumping

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:15:08