我正在尝试在我的 Shopify 后台构建自定义 Shopify 应用程序。
我正在使用Shopify的官方PHP库。
我已成功初始化库。
现在,当我尝试连接到 API 时,出现以下错误:
致命错误:未捕获 Shopify\Exception\MissingArgumentException:/www/doc/www.sozialstar.de/www/script/vendor/shopify/shopify-api/src/Auth/OAuth.php:226 中的标头数组中缺少授权密钥堆栈跟踪:#0 /www/doc/www.sozialstar.de/www/script/vendor/shopify/shopify-api/src/Utils.php(160): Shopify\Auth\OAuth::getCurrentSessionId(Array, Array, true) #1 /www/doc/www.sozialstar.de/www/script/shopifytest.php(29): Shopify\Utils::loadCurrentSession(Array, Array, true) #2 {main} 扔进 /www/doc /www.sozialstar.de/www/script/vendor/shopify/shopify-api/src/Auth/OAuth.php 第 226 行
这是我的 PHP 代码:
$requestHeaders = array('api_version'=>'2022-10', 'X-Shopify-Access-Token'=>'mytoken');
$requestCookies = array();
$isOnline = true;
$this->test_session = Utils::loadCurrentSession(
$requestHeaders,
$requestCookies,
$isOnline
);
我是根据 Shopify API 文档来执行此操作的。
为什么不起作用?
PHP 的 Shopify API 似乎希望您 设置
Authorization
标头字段/不支持 X-Shopify-Access-Token
。试试这个:
$requestHeaders = array(
'api_version'=>'2022-10',
'Authorization'=>'Bearer YOUR_ACCESS_TOKEN'
);
我遇到了同样的问题,我已经找到了解决方案。不幸的是,Shopify 的 PHP API 文档没有对此进行解释,但 Shopify 的管理界面在
id_token
GET 查询参数中发送 JWT 令牌。您需要将其值作为授权标头添加到 headers 数组中。
完整代码:
$requestHeaders = array('api_version'=>'2022-10', 'X-Shopify-Access-Token'=>'mytoken');
// add these two lines
$token = $_GET['id_token'];
$requestHeaders['Authorization'] = "Bearer $token";
$requestCookies = array();
$isOnline = true;
$this->test_session = Utils::loadCurrentSession(
$requestHeaders,
$requestCookies,
$isOnline
);