在Shopify ScriptTag中查询GraphQL节点项

时间:2019-06-24 13:04:16

标签: reactjs graphql shopify

我很新,在shopify scriptTag上运行GraphQL查询时遇到一些困难。

我当前的代码如下:

const test4 = gql`
query {
  scriptTags(first: 4) {
    edges {
      node {
        id
        src
      }
    }
  }
}
`;

const GiveData = () => (
  <Query query={test4}>
    {({ loading, error, data }) => {
          if (loading) return "Loading...";
          if (error) return `Error! ${error.message}`;

          return (                          
          <div>
          <p> hi1 </p>
            {data.scriptTags.edges.map(({ node }) => (              
              <div key={node.src}>
                <p>
                  hi2 {node.src}
                </p>
              </div>
            ))}
          </div>
          );

    }}
  </Query>
);

我的页面正在呈现“ hi1”文本段落,但是“ hi2”和实际数据从不加载。我的控制台也没有输出任何错误。

如果我通过Shopify GraphiQL App运行查询代码,则查询代码本身可以完美地工作,所以我认为不是那样。我相信我在GiveData常量中做错了事,但不确定是什么。

在此先感谢您的帮助或提示。


更多上下文: 我有一个基本的shopify应用设置,使用react + node.js设置(基于shopify的模板和教程)。

我的server.js文件包含以下脚本标记范围:

...
        createShopifyAuth({
          apiKey: SHOPIFY_API_KEY,
          secret: SHOPIFY_API_SECRET_KEY,
          scopes: ['read_products', 'write_products', 'read_script_tags', 'write_script_tags'],
...

我已经能够编写一个脚本标签,因为它显示在 Shopify GraphiQL应用程序。 Screenshot of output

我还能够从其他GraphQL查询中获得输出。例如

const test3 = gql`
query {
  shop {
    id
  }
}
`;

如果我的返回字段中有... {data.shop.id} ...,则具有与上述相同的基本GiveData常量,将输出结果。

我主要是想查询自己能够编写的脚本标签(不是我的应用程序之外的任何内容)。

1 个答案:

答案 0 :(得分:0)

这将有助于您了解通话的上下文。在Shopify GraphiQL中,显然您已通过身份验证,设置了端点,一切都很好。远离这一点,您的责任就会增加。您可以使用私有App API密码查询,也可以使用带有oAuth令牌(可对脚本标签进行范围访问)的常规App进行查询。哪有

在不了解自己正在做的事情的情况下,很难帮助您。另外,Shopify会向您显示不属于创建它们的API密钥(即您的API密钥)的任何脚本标签的可能性很小。