Google книги Api ограничение вызовов - PullRequest
0 голосов
/ 26 сентября 2019

Есть ли ограничение на количество вызовов API в день?Система, в которой я работаю, использует около 20 000 продуктов, а я использую Magento 1.9.Я вызываю API для получения миниатюр для продуктов без них, и проблема в том, что в некоторых книгах есть миниатюры, но они не добавляются в папку, которую я для этого установил.У некоторых из изображений, которые я ввел вручную, все еще есть изображение sku, и я не могу понять, почему.

<?php

//categories.php
//finding all products without images

require_once('C:/xampp/htdocs/html/app/Mage.php');
Mage::app();
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

for ($i = 0; $i < 10; $i++){

$_products = Mage::getResourceModel('catalog/product_collection')
    ->setPageSize(40)
    ->setCurPage($i);

    $_products->addAttributeToFilter('status', 1) //1 for enabled products, 2 for disabled products 
        ->addAttributeToFilter('attribute_set_id','9');
        $_products->addAttributeToFilter('sku', array('like' => '978%'));
        $_products->addAttributeToSelect('*')
        ->addAttributeToFilter(
        array(
            array(
                'attribute' => 'image',
                'null' => '1'
            ),
            array(
                'attribute' => 'small_image',
                'null' => '1'
            ),
            array(
                'attribute' => 'thumbnail',
                'null' => '1'
            ),
            array(
                'attribute' => 'image',
                'nlike' => '%/%/%'
            ),
            array(
                'attribute' => 'small_image',
                'nlike' => '%/%/%'
            ),
            array(
                'attribute' => 'thumbnail',
                'nlike' => '%/%/%'
            ),
            array (
                'attribute' => 'image',
                'like' => 'no_selection'
            )
        ),
        null,
        'left'
    );
    foreach($_products as $_product){
            $sku = $_product->getSku();
            $prod_id = Mage::getModel('catalog/product')->getIdBySku($sku);
            $product = Mage::getModel('catalog/product')->load($prod_id);

            $imageapi_url = file_get_contents('https://www.googleapis.com/books/v1/volumes?q=isbn:'. $sku . "max-results=20" ."&startIndex=1");
            $decode=json_decode($imageapi_url,true);
            $bookimg = $decode['items'][0]['volumeInfo']['imageLinks']['thumbnail'];

            echo "$bookimg"."\n";

            $imagename = 'c:\xampp\htdocs\html\var\uni_image\image' . $sku . '.jpg';
            $unavailable = 'c:\xampp\htdocs\html\var\uni_image\log.txt';

             //if image is found then save it, else write the sku into the log file
              if($bookimg != "" || $bookimg != NULL){
                   file_put_contents($imagename,file_get_contents ($bookimg));
                   $product->setMediaGallery(array('images' => array(), 'values' => array()))
                     ->addImageToMediaGallery($imagename, array('image', 'thumbnail', 'small_image'), false, false);
                   $product->save();

              }else{
                   // Open the file to get existing content
                   $current = file_get_contents($unavailable);
                   // Append a new sku to the file
                   $current .= $sku."\n";
                   // Write the contents back to the file
                   file_put_contents($unavailable, $current);

                   continue;
              }
        }   
}
...