php - 如何为 ebay 解决([error] => invalid_client [error_description] => client authentication failed)
问题描述
public function authorizationToken(){
$link = "https://api.ebay.com/identity/v1/oauth2/token";
$codeAuth = base64_encode($this->clientID.':'.$this->certID);
$ch = curl_init($link);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded','Authorization: Basic '.$codeAuth));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=authorization_code&code=".urlencode($this->authCode)."&redirect_uri=".$this->ruName."&scope=".urlencode('https://api.ebay.com/oauth/api_scope'));
$response = curl_exec($ch);
$json = json_decode($response, true);$info = curl_getinfo($ch);
curl_close($ch);print_r($json);}
解决方案
看起来您对refresh_token
感到困惑authorization_token
,因为您在两个不同的请求之间混合了不兼容的参数。
如果您尝试获取初始的“AccessToken”(AKA UserAccessToken、access_token、AuthToken、...),那么您不应在请求正文中包含该scope
参数。因此,您的请求正文应如下所示:
grant_type=authorization_code&redirect_uri=<redirect_uri>&code=<authorization_code>
从这里<authorization_code>
返回的值在哪里。
推荐阅读
- c# - 如何使用属性路由实现 X.PagedList PagedListPager?
- vue.js - 如何使用
- python - Python While 函数
- python - 在 macos 上使用 pyinstaller 编译 mediapipe 的问题
- asp.net - 如何在 ASP.Net Gridview 中动态启用/禁用 ItemTemplate
- postgresql - postgres/sequelize 中的自动增量
- javascript - 我想从文本文件中读取一定数量的行,并在使用 JavaScript 读取行后与它们一起创建一个对象
- ruby - Bundler 配置以在自定义路径中查找 gem 或从自定义源下载
- php - 在 PHP 上使用带有 SHA256 的 RSA OAEP 解密
- javascript - AddProduct.vue?8047:37 Uncaught (in promise) TypeError: Object(...) is not a function error when trying to add a product