Our Partner & Developer boards on the community are moving to a brand new home: the .dev community forums! While you can still access past discussions here, for all your future app and storefront building questions, head over to the new forums.

Receiving different response from generateStagedUploads as in official documentation

Solved

Receiving different response from generateStagedUploads as in official documentation

Matthias7
Excursionist
30 3 3

Hi all,

 

I am trying to upload some files from our server to our Shopify store using the GraphQL api.

 

I am following this guide from the official documentation: https://shopify.dev/api/examples/product-media

 

aswell as this tutorial: https://dev.to/fatihsamur/bulk-product-upload-on-shopify-using-graphql-admin-api-with-php-33ki

 

The query seems to be executing and I am getting this response back: 

 

 

 

 

{
   "data":{
      "stagedUploadsCreate":{
         "stagedTargets":[
            {
               "url":"https:\/\/shopify.s3.amazonaws.com\/tmp\/984219684\/products\/33057b4b-0c1c-47ee-89e9-0fbd718d2ad6\/68-07-60459-196_ls1.jpg?x-amz-acl=private&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJYM555KVYEWGJDKQ%2F20220913%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220913T085635Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=3b8592fd45e9214d6bff4a4bff7b098b3ac9959f6cc9057b0c5f3638dbbb9ed7",
               "resourceUrl":"https:\/\/shopify.s3.amazonaws.com\/tmp\/984219684\/products\/33057b4b-0c1c-47ee-89e9-0fbd718d2ad6\/68-07-60459-196_ls1.jpg",
               "parameters":[
                  {
                     "name":"content_type",
                     "value":"image\/jpg"
                  },
                  {
                     "name":"acl",
                     "value":"private"
                  }
               ]
            }
         ],
         "userErrors":[
            
         ]
      }
   },
   "extensions":{
      "cost":{
         "requestedQueryCost":11,
         "actualQueryCost":11,
         "throttleStatus":{
            "maximumAvailable":2000,
            "currentlyAvailable":1989,
            "restoreRate":100
         }
      }
   }
}

 

 

 

I am now at the curl stage of the official shopify documentation.

 

I noticed that most of the curl parameters that I required were actually in the "url" part of my response.

 

So after untangling them I also noticed that I am missing several parameters and seem to have several new ones, for example the "AWSAccessKeyId" is not present but I have instead a "X-Amz-SignedHeaders" parameter, those are just a few examples. 

 

I am not even sure why I am not receiving the response the same way as in this tutorial: https://dev.to/fatihsamur/bulk-product-upload-on-shopify-using-graphql-admin-api-with-php-33ki (because it seems strange that I have to untangle the parameters from the url). 

 

I am quite lost on how to proceed with the curl multiform part and would appreciate any help.


I am new to GraphQL so please forgive me as I am still learning 🙂 

 

Thanks in advance,

 

Matthias

Accepted Solution (1)

Matthias7
Excursionist
30 3 3

This is an accepted solution.

So im still working on this however, I managed to get the correct response.

I was silly and not following the correct Curl format found here: https://shopify.dev/api/admin-graphql/2022-07/mutations/stageduploadscreate 

 

 

'{
"query": "mutation stagedUploadsCreate($input: [StagedUploadInput!]!) { stagedUploadsCreate(input: $input) { stagedTargets { url, resourceUrl parameters { name value } } } }",
 "variables": {
    "input": [
      ' . $inputVARIABLE . '
    ]
  }
}'

 

 

I hope this helped someone :), the programming language is php. 

 

Cheers,

 

Matthias

 

View solution in original post

Replies 2 (2)

Matthias7
Excursionist
30 3 3

This is an accepted solution.

So im still working on this however, I managed to get the correct response.

I was silly and not following the correct Curl format found here: https://shopify.dev/api/admin-graphql/2022-07/mutations/stageduploadscreate 

 

 

'{
"query": "mutation stagedUploadsCreate($input: [StagedUploadInput!]!) { stagedUploadsCreate(input: $input) { stagedTargets { url, resourceUrl parameters { name value } } } }",
 "variables": {
    "input": [
      ' . $inputVARIABLE . '
    ]
  }
}'

 

 

I hope this helped someone :), the programming language is php. 

 

Cheers,

 

Matthias

 

Matthias7
Excursionist
30 3 3

So...I am still struggling with the CURL part, and would appreciate any help.

I am constructing my CURL like so in postman based off of the POST request in  https://shopify.dev/api/examples/product-media#upload-the-asset, 

I am trying to run it through Postman and the curl functions in PHP both to no avail. 

 

shopifyPostman.png

grphql_headers.png

  

 I am trying to send with x-amz-signatures too however, that seems to make no difference, and I still end with the same conflict of acl, policy error.

 

If anyone has experienced a similar hold-up I would appreciat ethem sharing their experience/how they managed to resolve their problem 🙂

 

Cheers,

 

Matthias