【发布时间】:2021-06-05 10:41:49
【问题描述】:
昨天晚上我度过了一个非常令人沮丧的夜晚,试图让基本的 Shopify GraphQL Admin API 示例与 nodeJS 一起工作。原始 Shopify 示例代码为 here。
问题是我的代码返回状态 400 - 错误请求。
我已在我的商店中启用了“私人应用程序”并启用了所有具有读取权限的 API。我从 Shopify 小心地复制了 apiKey、accessToken 和商店名称。
谁能指出我的代码是否有问题?非常感谢。
代码:
import fetch from 'node-fetch';
const apiKey = 'xxxx';
const accessToken = 'yyyy';
const store = 'zzzz';
const hostName = store + '.myshopify.com';
const apiVersion = '2021-01';
const apiLocation = '/admin/api/';
const rootUrl = 'https://' + apiKey + ':' + accessToken + '@' + hostName + apiLocation + apiVersion + '/';
const shopGraphQl = 'https://' + hostName + apiLocation + apiVersion + '/graphql.json';
//const shopGraphQl2 = rootUrl + 'graphql.json';
//const urlTest = rootUrl + 'orders.json';
const url = shopGraphQl;
const body = {
query: `{
shop {
name
}
}`
};
fetch (
url,
{
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Shopify-Access-Token" : accessToken
},
body: JSON.stringify({
body
})
}
)
.then(res => {
console.log('status = ' + res.status + ' , ' + res.statusText);
})
.then(json => {
console.log("data returned:\n", json);
})
.catch(err => console.error(err));;
【问题讨论】:
-
如果你要
JSON.stringifybody.query,为什么要把它包装成一个模板字符串 -
好的,我在文档中看到是这样的
-
我看到的与文档之间的唯一区别是文档没有定义 api 版本,
apiVersion, '2021-01' -
是的,我在 URL 上尝试了多种排列方式。还是没有运气
-
是的,我也试过了……下面的答案已经为我解决了这个错误:) 感谢您的输入。
标签: node.js graphql shopify node-fetch shopify-api