如何在Google App Maker中使用Data Transfer Admin API?

时间:2018-11-26 09:15:39

标签: google-app-maker

当我尝试在App Maker中使用Google的APi进行数据传输时遇到两个问题(例如:https://www.googleapis.com/admin/datatransfer/v1/transfers

当我在Apps脚本上使用该代码时,我可以在脚本开始时打开的权限窗口中修改清单以授权用户,但是在App maker中我找不到用于实现范围的清单文件需要(https://www.googleapis.com/auth/admin.datatransfer)。

在Apps脚本中创建项目时,您可以在GCP控制台中看到该项目,因此您可以选择允许您使用OAuth 2身份验证的客户端ID和密码,但是对于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);
  }
}

感谢您的帮助。

0 个答案:

没有答案