FROM CACHE - de_header

API Kollektionen auslesen funktioniert nichtxx

appstarter123
Shopify Partner
13 0 0

Guten Tag,

 

ich bentuze die Shopify Node.JS Api und möchte Api calls machen mit meinem Access-Token. Es klappt auch z.b kann ich mit dem Access Token meine Produkte bekommen. Problem ist aber, dass ich meine Kollektionen nicht auslesen kann, da ich 404 bad request bekomme. Weiß jemand woran das liegt ?

 

export const buildGetCollectionUrl = (shop: any) => `https://${shop}/admin/api/2023-04/collection_listings.json`;

export const fetchCollection = async (shop: any, accessToken: any) => await axios(buildGetCollectionUrl(shop), {
  method: 'GET',
  headers: {
    'X-Shopify-Access-Token': accessToken,
    'Content-Type': 'application/json',
  }
});

app.get('/auth/callback', async (req: any, res: any) => {
  try {
    // The library will automatically redirect the user
    const callback = await shopify.auth.callback({
      rawRequest: req,
      rawResponse: res,
    });

    const response = await shopify.webhooks.register({
      session: callback.session,
    });

    const { data: collections } = await fetchCollection(callback.session.shop, callback.session.accessToken);
    console.log(collections);

Hab jetzt nicht den Auth0 prozess reingemacht, da der jetzt unnötig ist und ich ja den access token bekomme.

 

Diesen Error bekomm ich:

AxiosError: Request failed with status code 404
    at settle (C:\express_inngest\node_modules\axios\lib\core\settle.js:19:12)
    at BrotliDecompress.handleStreamEnd (C:\express_inngest\node_modules\axios\lib\adapters\http.js:572:11)
    at BrotliDecompress.emit (node:events:402:35)
    at BrotliDecompress.emit (node:domain:475:12)
    at endReadableNT (node:internal/streams/readable:1343:12)
    at processTicksAndRejections (node:internal/process/task_queues:83:21) {
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false
    },
    adapter: 'http',
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: null },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': undefined,
      'X-Shopify-Access-Token': 'xxxx_xxxxxxx',
      'User-Agent': 'axios/1.5.0',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },

Natürlich hab ich ebenso meine Scopes eingestellt:

const shopify = shopifyApi({
  apiKey: 'xxxx',
  apiSecretKey: 'xxxx',
  scopes: ['read_products', 'write_products', 'read_orders', 'write_orders', 'read_product_listings', 'write_product_listings', 'unauthenticated_read_product_listings'],
  hostName: '93c5-2a02-908-4b74-122s-e9a8-dd08-43ef-4725.ngrok-free.app/',
  apiVersion: LATEST_API_VERSION,
  isEmbeddedApp: true
});

 

1 ANTWORT 1

Gabe
Shopify Staff
17452 2760 4076

Hey @appstarter123 

 

Danke für die Angaben und der 🐛 scheint in der URL zu liegen, die du verwendest, um die Collection abzurufen, kann mich aber irren. Du rufst die Collections mit dem collection_listings.json Endpunkt ab. Sollte es nicht custom_collections.json sein laut der API-Doku?

 

Für die "Smart" Collections https://[shop]/admin/api/2023-04/smart_collections.json?
 

Wie wärs mit export const buildGetCollectionUrl = (shop: any) => `https://${shop}/admin/api/2023-04/custom_collections.json`;?

 

Oder export const buildGetCollectionUrl = (shop: any) => `https://${shop}/admin/api/2023-04/smart_collections.json`; je nach Art der Collection?

Stelle außerdem sicher, dass du die entsprechenden Berechtigungen (Scopes) in deiner App hast, um auf Kollektionen zuzugreifen, z. B. read_custom_collections und/oder read_smart_collections.

 

Wenn du immer noch Probleme hast, nachdem du diese Änderungen vorgenommen hast, würde ich empfehlen, zu 👀, ob es neue Updates oder Anforderungen bzw. Änderungen in der API-Version gibt, die du verwendest.

Gabe | Social Care @ Shopify
 - War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen! 
 - Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung 
 - Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog