Я пытаюсь создать токен доступа Storefront на основе документации, размещенной по адресу https://help.shopify.com/en/api/reference/access/storefrontaccesstoken#create.
Я успешно получил токен доступа через API администратора, а затем пытаюсь сделать POST-вызов /admin/storefront_access_tokens.json
.Кажется, что это должно быть просто, но я получаю сообщение об ошибке, о котором я не могу найти никаких сообщений или сообщений в блоге.
Ошибка : StatusCodeError: 400 - {"errors": {"storefront_access_token": "Обязательный параметр отсутствует или недействителен"}}
Я понимаю, что мне нужно изменить параметр, который передается в функцию, но я не знаю, какой параметр "кусок "есть.Все исследования, которые я провел, касались потоковых API, но это не отправка голосовых или видеоданных.Согласно документации, ответом должна быть только полезная нагрузка JSON.
Примечание : у меня есть магазин, настроенный как «Канал продаж», и я предоставил этому хранилищу неавторизованный доступ
API Key: b6dfcb561d973c5d21bc59f9f5d365bd
Shop Name: qualitas-dev01.myshopify.com
У кого-нибудь есть простой пример кода для создания токена доступа к Storefront?
const shop = req.query.shop;
if (shop) {
/*#################### START CALL TO DESIRED FUNCTION #################### */
const accessToken = "f24c1215650febf0992a49f582930d7a";
const storefrontTokenRequestUrl = "https://" + shop + "/admin/storefront_access_tokens.json";
const shopRequestHeaders = {
'X-Shopify-Access-Token': accessToken,
};
console.log("QT/shopify/callback :: shopRequestHeaders <" + JSON.stringify(shopRequestHeaders) + ">");
const storefrontTokenPayload = {
"storefront_access_token": {
"title": "Test"
}
};
console.log("QT/shopify/callback :: storefrontTokenPayload <" + JSON.stringify(storefrontTokenPayload) + ">");
request.post(storefrontTokenRequestUrl, {
json: JSON.stringify(storefrontTokenPayload),
headers: shopRequestHeaders
})
.then((storefrontResponse) => {
console.log("QT :: storefrontResponse.access_token <" + storefrontResponse.access_token + ">");
console.log("QT :: storefrontResponse.access_scope <" + storefrontResponse.access_scope + ">");
console.log("QT :: storefrontResponse.created_at <" + storefrontResponse.created_at + ">");
console.log("QT :: storefrontResponse.title <" + storefrontResponse.title + ">");
res.end(storefrontResponse);
})
.catch((error) => {
console.log("QT :: ERROR in Promise!!! " + error);
//DEL: res.status(error.statusCode).send(error.error_description);
if (error.statusCode >= 100 && error.statusCode < 600) {
res.status(error.statusCode);
} else {
res.status(500);
}
res.end("Something BAD happened!!!\n" + error);
});
/*#################### END CALL TO DESIRED FUNCTION ####################*/
} else {
res.status(400).send('Missing \'shop\' parameter');
}