查询Shopify发布渠道的正确方式及报错问题咨询
正确查询Shopify发布渠道的方法
先排查代码中的明显错误
你代码里已经找到了离线会话offline,但创建GraphQL客户端时传入的是未定义的session变量,这会导致使用无效会话,大概率是触发错误的直接原因。先修正这个变量名:
const sessions = await sessionStorage.findSessionsByShop(shop); const offline = sessions.find(s => !s.isOnline); if (offline) { const client = new shopifyAPP.clients.Graphql({ session: offline, // 替换为找到的离线会话 apiVersion: LATEST_API_VERSION, }); // 后续查询逻辑 }
根据API版本选择正确的查询语句
Shopify API迭代中,发布渠道的查询方式存在版本差异:
- 2023-07及更早版本:
publications查询可用,修正会话后你的原始查询就能正常运行:query publications { publications(first: 10) { edges { node { id name } } } } - 2024-01及更新版本:
publications已被弃用,需改用salesChannels查询:query salesChannels { salesChannels(first: 10) { edges { node { id name type } } } }
额外检查项
- 打印
LATEST_API_VERSION的值,确认是否和你预期的版本一致(若Shopify CLI自动升级到更高版本,会触发弃用提示) - 确保你的Shopify应用已申请对应权限:
- 旧版本:
read_publications - 新版本:
read_sales_channels
- 旧版本:
内容的提问来源于stack exchange,提问作者Bellian
相关产品推荐
相关产品推荐

