没有不值得去解决的问题,也没有不值得去学习的技术!

在 Altair GraphQL Client 中请求 Shopify’s Store GraphQL API

重载文档响应成功

1、参考:https://www.shuijingwanwq.com/2022/03/15/6129/ 。Shopify’s GraphQL Admin API 中,不存在一些在线商店的 API。

2、Shopify 后台的在线商店,请求网址: https://xxx.myshopify.com/admin/online-store/admin/api/unversioned/graphql?operation=ThemeIndexSecondaryData 。请求方法: POST 。响应主题列表。如图1

Shopify 后台的在线商店,请求网址: https://xxx.myshopify.com/admin/online-store/admin/api/unversioned/graphql?operation=ThemeIndexSecondaryData 。请求方法: POST 。响应主题列表。
图1

3、在网址:https://shopify.dev/api 中未找到在线商店相关的 GraphQL API。如图2

在网址:https://shopify.dev/api 中未找到在线商店相关的 GraphQL API。
图2

4、在 /admin/api/2022-01/graphql.json 的文档中搜索:ThemeIndexSecondaryData,未找到(注:这仅是查询的别名,应该基于载荷中的请求参数搜索)。如图3

在 /admin/api/2022-01/graphql.json 的文档中搜索:ThemeIndexSecondaryData,未找到。
图3

5、在 Altair GraphQL Client 中,设置请求网址:https://xxx.myshopify.com/admin/online-store/admin/api/unversioned/graphql?operation=ThemeIndexSecondaryData

6、Shopify 后台的在线商店,复制请求载荷中 query 的值,右键 – 复制值。然后再复制 请求载荷中 variables 的值。如图4

Shopify 后台的在线商店,复制请求载荷中 query 的值,右键 - 复制值。然后再复制 请求载荷中 variables 的值。
图4

7、分别粘贴至 Altair GraphQL Client 的查询与变量中。如图5

分别粘贴至 Altair GraphQL Client 的查询与变量中
图5

8、设置 Headers,Content-Type:application/json,Authorization:Bearer xxxx,xxxx 的值复制自请求标头中的 authorization。如图6

设置 Headers,Content-Type:application/json,Authorization:Bearer xxxx,xxxx 的值复制自请求标头中的 authorization。
图6

9、响应 Unauthorized,仔细对比请求头中的差异,发现 Altair GraphQL Client 中多出 cookie,决定去除掉。如图7

响应 Unauthorized,仔细对比请求头中的差异,发现 Altair GraphQL Client 中多出 cookie,决定去除掉。
图7

10、在 Postman 中试验调用,仍然响应 Unauthorized。如图8

在 Postman 中试验调用,仍然响应 Unauthorized
图8

11、分析发现由于 authorization 的值,是先请求生成的。复制 Headers,x-csrf-token: oO73nzXt-GNexB7LPmAZnm70wjWB9fKRLMvU。如图9

分析发现由于 authorization 的值,是先请求生成的。复制 Headers,x-csrf-token: oO73nzXt-GNexB7LPmAZnm70wjWB9fKRLMvU
图9

12、决定在 Altair GraphQL Client 中 请求网址: https://fuyan666.myshopify.com/admin/internal/web/graphql/core?operation=GenerateSessionToken&type=mutation 。请求方法: POST 。设置 Headers,x-csrf-token: oO73nzXt-GNexB7LPmAZnm70wjWB9fKRLMvU。否则响应 CSRF。如图10

决定在 Altair GraphQL Client 中 请求网址: https://fuyan666.myshopify.com/admin/internal/web/graphql/core?operation=GenerateSessionToken&type=mutation 。请求方法: POST 。设置 Headers,x-csrf-token: oO73nzXt-GNexB7LPmAZnm70wjWB9fKRLMvU。否则响应 CSRF
图10

13、复制响应的 session ,粘贴至 请求网址:https://xxx.myshopify.com/admin/online-store/admin/api/unversioned/graphql?operation=ThemeIndexSecondaryData 的 Headers 的 Authorization 中。请求响应成功。如图11

复制响应的 session ,粘贴至 请求网址:https://xxx.myshopify.com/admin/online-store/admin/api/unversioned/graphql?operation=ThemeIndexSecondaryData 的 Headers 的 Authorization 中。请求响应成功
图11

14、重载文档响应成功。如图12

重载文档响应成功
图12

需要长期技术维护或远程问题排查?

我是拥有 15+ 年经验的 PHP / Go 后端工程师,长期关注已有系统维护、Bug 修复、性能优化、服务器排查、WordPress 网站维护和小功能迭代。

如果你的项目遇到以下情况,可以先从一次小问题排查开始合作:

  • ✅ PHP / Laravel / Yii2 老项目无人维护
  • ✅ Go / Gin 后端接口需要排查或优化
  • ✅ WordPress 网站访问慢、报错或插件冲突
  • ✅ Nginx / MySQL / Redis / Linux 服务器异常
  • ✅ CDN / Cloudflare / DNS / HTTPS 配置问题
  • ✅ 需要长期远程技术支持或兼职维护

更多介绍请查看:关于我 & 合作

微信:13980074657
邮箱:shuijingwanwq@gmail.com
Telegram:@shuijingwan
GitHub:https://github.com/shuijingwan

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理