使用php-shopify调用Shopify GraphQL API时变量未声明错误排查求助
问题原因及解决方案
错误原因
你遇到的错误是GraphQL语法不符合规范:在使用变量$gqlGid时,没有在查询开头声明该变量的类型。Shopify的GraphQL API要求所有在查询中使用的变量必须先声明类型,否则会抛出"变量未声明"的错误。
修正后的代码
修改你的GraphQL查询语句,在query后添加变量声明,变量数组和调用逻辑保持不变:
$gqlVariables = array("gqlGid"=>'gid://shopify/OnlineStoreArticle/557585301654'); $graphQL = <<<Query query(\$gqlGid: ID!) { translatableResource(resourceId: \$gqlGid) { resourceId translations(locale: "de") { key value } } } Query; $data = $shopify->GraphQL->post($graphQL, null, null, $gqlVariables);
关键说明
query(\$gqlGid: ID!)是变量声明部分:\$gqlGid是变量名,ID!表示该变量是必填的ID类型(Shopify的GID都属于ID类型)- 之前的查询属于"匿名查询",缺少变量声明环节,导致API无法识别你使用的变量
- php-shopify库的调用逻辑无问题,错误根源是GraphQL查询本身的语法缺失
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

