Bing Ads Script для изменения общего бюджета кампании в нескольких аккаунтах с помощью Google Sheets - PullRequest
0 голосов
/ 12 апреля 2019

У меня запущен скрипт Google Ads для изменения бюджетов кампаний, но внедрение этого же скрипта в Bing Ads для меня сложнее.У меня проблемы с кодом для подключения Google Sheets к Bing Ads Script.Я получил clientId, clientSecret и токен обновления, чтобы авторизовать сервис Google в Bing, но я борюсь с кодом, чтобы скрипт мог прочитать мой файл Google Sheets.

Я добавил код, отвечающий за подключение файла Google Sheets, к Bing Script.Это должно позволить ему прочитать его содержимое, а затем изменить его на те значения, которые я указал в этом файле.

const credentials = {
      accessToken: '', // not sure if i needed it if I got refresh token
      clientId: 'HIDDEN',
      clientSecret: 'HIDDEN',
      refreshToken: 'HIDDEN'
  };

  function main() {

var SPREADSHEET_URL = 'HIDDEN';

var GoogleApis;
  (function (GoogleApis) {
      GoogleApis.readSheetsService = credentials => readService("https://sheets.googleapis.com/$discovery/rest?version=v4", credentials);
       
      // Creation logic based on https://developers.google.com/discovery/v1/using#usage-simple
      function readService(SPREADSHEET_URL, credentials) {
          const content = UrlFetchApp.fetch(SPREADSHEET_URL).getContentText();
          const discovery = JSON.parse(content);
          const accessToken = getAccessToken(credentials);
          const standardParameters = discovery.parameters;
      }

  function getAccessToken(credentials) {
      if (credentials.accessToken) {
          return credentials.accessToken;
      }
      const tokenResponse = UrlFetchApp.fetch('https://www.googleapis.com/oauth2/v4/token', { method: 'post', contentType: 'application/x-www-form-urlencoded', muteHttpExceptions: true, payload: { client_id: credentials.clientId, client_secret: credentials.clientSecret, refresh_token: credentials.refreshToken, grant_type: 'refresh_token' } });
      const responseCode = tokenResponse.getResponseCode();
      const responseText = tokenResponse.getContentText();
      if (responseCode >= 200 && responseCode <= 299) {
          const accessToken = JSON.parse(responseText)['access_token'];
          return accessToken;
      }
      throw new Error(responseText);
   })(GoogleApis || (GoogleApis = {}));

он выдает синтаксическую ошибку в последней строке кода:}) (GoogleApis || (GoogleApis = {}));

, но я думаю, что есть нечто большее.

1 Ответ

1 голос
/ 08 мая 2019

Пожалуйста, попробуйте объявление var GoogleApis вне main (), как показано в этом примере: https://docs.microsoft.com/en-us/advertising/scripts/examples/calling-google-services

Надеюсь, это поможет.

...