Как получить данные из /admin/products.json, даже если я вышел из системы (чтобы обычные посетители тоже могли видеть данные)? - PullRequest
0 голосов
/ 01 марта 2019
        if ( collectionId ) {
            var url ='/admin/products.json?published_status=published&limit=' + limit + '&page=' + filterPage + '&collection_id=' + collectionId;
        } else {
            var url = '/admin/products.json?published_status=published&limit=' + limit + '&page=' + filterPage;
        }

        $.ajax({
            type: 'GET',
            url: url,
            dataType: 'json',
            contentType: 'application/json',
            headers: {
                'X-Shopify-Access-Token': '',
                // Would it fix my problem? If so, how to generate private token?
                'content-type': 'application/json'
            },
            success: function(data){
            ...
            },
            error: {
            ...
            }
       });

// Works when logged in
// Does not work

Я совершенно новичок в Shopify и не понимаю, как работает их REST, но после долгого расследования я понял, что мне нужно каким-то образом проверять подлинность моего запроса каждый раз, когда мне нужен products.json.

Когда я вышел из shopify, ajax перенаправляет меня на страницу входа, где я могу нажать продолжить.Но ничего не происходит.

Если токен доступа может помочь, как я могу его сгенерировать?У меня есть этот курс красного цвета, но этот посвящен общедоступным приложениям (даже если он сказал, что технические вещи одинаковы для публичного и частного).https://www.shopify.com/partners/blog/17056443-how-to-generate-a-shopify-api-token

Может кто-нибудь помочь, пожалуйста?

1 Ответ

0 голосов
/ 01 марта 2019

Вы должны объяснить, что вы имеете в виду лучше.Почему вы не можете просто визуализировать продукт JSON с помощью Liquid, если считаете, что он вам нужен?Все темы делают это в своем Javascript.

Но, если вы действительно не можете легко сделать это по какой-то странной причине, вы можете следовать этому совету ниже ...

Вам нужно остановиться прямо здесь!НЕ пытайтесь получить доступ к данным бэкэнда из внешнего интерфейса, так как это предоставляет ваш токен API!Вместо этого вы можете использовать простой шаблон:

  • установить частное приложение с доступом к вашим продуктам в вашем магазине
  • настроить прокси приложения в этом приложении с помощью вашей партнерской учетной записив Shopify
  • настройте свое приложение для получения идентификатора продукта и верните желаемый JSON на внешний интерфейс
  • на внешний интерфейс, теперь вы можете выполнить GET для этого приложения и безопаснополучите ваши данные

Shopify прекратила предоставлять информацию о продукте из внешнего интерфейса, так как магазины стали широко открыты для злоупотреблений со стороны конкурентов.

...