Создание токена доступа к магазину Shopify - PullRequest
0 голосов
/ 25 августа 2018

Я пытаюсь создать токен доступа 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');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...