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

Shopify API与GraphQL开发求助:无头定时应用认证及请求报错

解决方案:无头定时任务访问Shopify GraphQL API问题

1. 关于Auth0认证的疑问

你的无头定时任务完全不需要Auth0或会话令牌认证。Shopify GraphQL API支持两种认证模式:

  • 用户会话认证:示例中用的Auth0属于这类,适合需要用户交互的前端/嵌入应用,依赖OAuth流程获取会话令牌。
  • 服务器端令牌认证:针对无头、定时任务这类后台应用,直接使用Shopify私有应用(或自定义应用)的访问令牌即可,无需Auth0。

API密钥+访问令牌足够完成所有后台操作(读取商品、更新库存等),这才是你应该采用的认证方式。

2. 解决curl错误“Could not resolve host: login”

这个错误是因为请求URL格式错误,导致域名解析失败。正确的Shopify GraphQL端点格式为:

https://{shop-name}.myshopify.com/admin/api/{api-version}/graphql.json

检查你的URL:

  • 是否遗漏了.myshopify.com后缀?
  • 是否误将login包含在域名中(比如写成https://login.xxxxxx...)?
    修正URL后,域名即可正常解析。

3. 浏览器访问弹出登录框的原因

浏览器直接访问GraphQL端点时,没有携带X-Shopify-Access-Token请求头,Shopify会自动触发基本认证 fallback,因此弹出登录对话框。这是正常现象,你的定时任务请求只要正确携带令牌,就不会出现这个问题。

4. 正确的PHP请求示例(无需Auth0)

以下是适合定时任务的PHP请求代码,直接使用访问令牌完成认证:

<?php
$shopDomain = 'your-shop.myshopify.com'; // 替换为你的店铺域名
$accessToken = 'your-server-access-token'; // 替换为私有应用/自定义应用的访问令牌
$apiVersion = '2025-01';

$graphqlUrl = "https://{$shopDomain}/admin/api/{$apiVersion}/graphql.json";

// 示例查询:获取第一个商品的库存信息
$query = '{
  products(first: 1) {
    edges {
      node {
        id
        title
        inventoryItems(first: 1) {
          edges {
            node {
              id
              inventoryQuantity
            }
          }
        }
      }
    }
  }
}';

$ch = curl_init($graphqlUrl);

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        "X-Shopify-Access-Token: {$accessToken}"
    ],
    CURLOPT_POSTFIELDS => json_encode(['query' => $query])
]);

$response = curl_exec($ch);

if (curl_errno($ch)) {
    die('Curl Error: ' . curl_error($ch));
}

$responseData = json_decode($response, true);
print_r($responseData);

curl_close($ch);
?>

5. 关键注意事项

  • 确保访问令牌拥有足够权限(如read_products、write_inventory),创建应用时需勾选对应权限。
  • 私有应用的访问令牌永久有效,自定义应用的服务器端令牌若设置了过期时间,需定期刷新。
  • 访问令牌仅在后台定时任务中使用,禁止在前端代码中暴露。

内容的提问来源于stack exchange,提问作者Barry White

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 22:16:10