Как получить список продуктов из Google Shopping Content API v2

Я должен признать, что не смог найти несколько простых примеров кода, которые дали бы мне фору в этом новом API Shopping Content v2.

Первая задача: получить список продуктов из API.

Шимпл, верно? Возможно, но я не могу понять, как это все связано.

Я могу создать свой объект Google_Client, тогда я считаю, что мне нужно сделать этот запрос...

https://www.googleapis.com/content/v2/MERCHANT_ID_WAS_HERE/products

...возможно, с помощью метода Google_Service_ShoppingContent_Products_Resource listProducts().

Дело в том, что для создания экземпляра Google_Service_ShoppingContent_Products_Resource мне нужно передать следующие аргументы...

  • $сервис
  • $serviceName
  • $resourceName
  • $ресурс

... но я не могу найти ничего, чтобы сказать мне, что это такое.

Может ли кто-нибудь указать мне на простой пример этого, который работает?


person WalterEgo    schedule 12.02.2015    source источник
comment
Хорошо, приближаемся... $service = new Google_Service_ShoppingContent($this->getApiClient()); print_r($service->products->listProducts(self::CLIENT_ID)); приближаются. Теперь мне просто нужно найти документацию о том, как сначала войти в систему...   -  person WalterEgo    schedule 13.02.2015


Ответы (1)


Как и во многих других случаях, рабочий код, который у нас получился, не был слишком многословным, как только мы выяснили, каким он должен быть на самом деле.

Итак, теперь у нас есть класс, который включает в себя эти два метода, которые вызываются в конструкторе...

private function setUpApiClient()
{
    $this->setApiClient(new Google_Client());
    $this->getApiClient()->setApplicationName(GOOGLE_API_SHOPPING_CONTENT_APP_NAME);
    $this->getApiClient()->setAssertionCredentials(
        new Google_Auth_AssertionCredentials(
            GOOGLE_API_EMAIL,
            array('https://www.googleapis.com/auth/structuredcontent'),
            file_get_contents(GOOGLE_API_PRIVATE_KEY_FILE)
        )
    );
    $this->getApiClient()->setClientId(GOOGLE_API_CLIENT_ID);
    $this->getApiClient()->setAccessType('offline_access');
}

private function setUpShoppingContent()
{
    $this->setShoppingContent(
        new Google_Service_ShoppingContent($this->getApiClient())
    );
}

Тогда такие вещи просто работают...

$result = $this->getShoppingContent()->products->listProducts(
    self::CLIENT_ID,
    array('pageToken' => $nextPageToken)
);

Я надеюсь, что это поможет кому-то еще запустить это быстрее, чем я!

person WalterEgo    schedule 18.02.2015