Как использовать API администрирования передачи данных в Google App Maker? - PullRequest
0 голосов
/ 26 ноября 2018

У меня две проблемы, когда я пытаюсь использовать APi Google для передачи данных в App Maker (например: https://www.googleapis.com/admin/datatransfer/v1/transfers)

Когда я использую это в скрипте приложений, я могу изменить манифест, чтобы авторизовать пользователяв окне разрешений, которое открывается в начале скрипта, но в App maker я не могу найти файл манифеста для реализации необходимой области (https://www.googleapis.com/auth/admin.datatransfer).

При создании проекта в Apps Script выможно увидеть проект в консоли GCP, поэтому вы можете выбрать идентификатор клиента и секретный ключ, который позволяет использовать аутентификацию OAuth 2, но в App Maker я не вижу проект, и немного странно использовать другой проект дляаутентификация.

Что мне делать?

Это мой код:

function getService() {
  return OAuth2.createService('Data Transfer')
  .setAuthorizationBaseUrl('https://accounts.google.com/o/oauth2/auth')
  .setTokenUrl('https://accounts.google.com/o/oauth2/token')
  .setClientId(CLIENT_ID)
  .setClientSecret(CLIENT_SECRET)
  .setCallbackFunction('authCallback')
  .setPropertyStore(PropertiesService.getUserProperties())
  .setScope('https://www.googleapis.com/auth/admin.datatransfer')
}

function alfa() {
  var service = getService();
  if (service.hasAccess()) {    
    var url = "https://www.googleapis.com/admin/datatransfer/v1/transfers";    
    var headers ={
      "Authorization": 'Bearer ' + service.getAccessToken(),
      "Accept":"application/json", 
      "Content-Type":"application/json",
    };
    var data = {
      "oldOwnerUserId": "x",
      "newOwnerUserId": "xx",
      "applicationDataTransfers": [
        {
          "applicationId": 55656082996
        }
      ]
    };
    var options = {
      'headers': headers,
      'payload' : JSON.stringify(data),
      'method': 'POST',
      'muteHttpExceptions': true
    };
    var res = UrlFetchApp.fetch(url, options);
    var json = JSON.parse(res);
    Logger.log(json);
  }
}

Спасибо за вашу помощь.

...