Php Curl с Shopify 403 Forbidden (область действия не определена для доступа API) - PullRequest
0 голосов
/ 26 декабря 2018

Я получаю 403 Запрещено при попытке создать коллекцию smart_collection с использованием CURL.Я получаю ответ:

"ошибки": "Область не определена для доступа к API: коллекции.

В предыдущих частных приложениях Shopify использовался тот же блок CURLкода для успешного создания продуктов. Я также проверил все разрешения на Shopify для частного приложения и могу подтвердить, что для них установлено самое высокое значение.

Мой вопрос заключается в том, что дополнительно требуется для успешного размещения POST smart_collection вShopify. Как определить область при публикации?

<?php
//this gets the collection name from the URL
if(isset($_GET['id'])){
   $collection_name = $_GET['id'];
}

$collection_array = array(
    "smart_collection"=>array(
        "title"=> $collection_name,
        "rules"=>array(
            array(
                "column" => "tag",
                "relation" => "equals",
                "condition" => $collection_name
                ),
            array(
                "column" => "variant_inventory",
                "relation" => "greater_than",
                "condition" => 0
                )                
        )
    )
);
echo json_encode($collection_array);
echo "<br />";
$url ="https://apikey:password@mystore.myshopify.com
/admin/smart_collections.json";

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: 
application/json'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_VERBOSE, 0);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, 
json_encode($collection_array));
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
$response = curl_exec ($curl);
curl_close ($curl);

echo "<pre>";
print_r($response); 

Ожидаемые результаты: В Shopify должна быть создана smart_collection в соответствии с $ colletion_array, пример:

{
 "smart_collection": {
 "title": "3DLightFX",
 "rules": [
  {
   "column": "tag",
   "relation": "equals",
   "condition": "3DLightFX"
  },
  {
   "column": "variant_inventory",
   "relation": "greater_than",
   "condition": 0
  }
  ]
 }
}

Фактические результаты: Я получаю 403 forbidden, и ответ:

{"errors":"Scope undefined for API access: collections. Valid scopes: admin_notifications, ..."}

1 Ответ

0 голосов
/ 27 декабря 2018

Обновление: Я отправлял сообщение по неправильному URL.С тех пор я обновил.

Для всех, кто борется с этим, при создании «smart_collection» используйте следующий URL:

https://___:___@___.myshopify.com//admin/smart_collections.json
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...