当我尝试在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);
}
}
感谢您的帮助。