Укажите версию API, используя расширенную службу в скриптах Google Apps? - PullRequest
0 голосов
/ 09 января 2019

Мне нужно использовать версию 2.1 Content API в моем скрипте, однако я не уверен, как передать номер версии.

Вот соответствующая часть кода:

var products = ShoppingContent.Products.list(merchantId, {
    pageToken: pageToken,
    maxResults: maxResults,
    includeInvalidInsertedItems: true
});

Я пытался передать version: 2.1, но без сигары.

Спасибо

1 Ответ

0 голосов
/ 09 января 2019

Версия для конкретной клиентской библиотеки указывается только тогда, когда вы включаете конкретную расширенную службу. Не все версии поддерживаются всеми клиентскими библиотеками, например Drive расширенный сервис не поддерживает конечные точки v3.

Для клиентской библиотеки ShoppingContent Apps Script предоставляет привязки только к версии 2:

enter image description here

Таким образом, чтобы использовать v2.1, вам нужно будет трактовать API контента контента как внешний API и обращаться к нему с помощью UrlFetchApp. Вам нужно будет авторизовать запросы соответствующим образом, создав собственный заголовок OAuth2 с помощью метода ScriptApp.getOAuthToken(), например ::

function addAuthHeader(headers) {
  var token = ScriptApp.getOAuthToken();
  headers['Authorization'] = 'Bearer ' + token;
}
function getBaseURI(version) {
  return 'https://www.googleapis.com/content/' + version + '/';
}

function listProducts(merchantId, pageToken) {
  const base = getBaseURI('v2.1');
  const path = merchantId + '/products';
  if (pageToken)
    path + '?pageToken=' + pageToken;

  const headers = {
    /* whatever you need here */
  };
  addAuthHeader(headers);

  const fetchOptions = {
    method: 'GET',
    /* whatever else you need here
      https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app#fetchurl-params
     */
    headers: headers
  };
  var pageResponse = UrlFetchApp.fetch(base + path, fetchOptions);
  var onePageOfResults = JSON.parse(pageResponse.getContentText());
  /* whatever else */
}
...