У меня две проблемы, когда я пытаюсь использовать 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);
}
}
Спасибо за вашу помощь.