첫째,이 질문은 다른 Google WebApp의 Google WebApp에서 JSON 개체를 가져 오는 것과 중복 되지만 해당 질문은 6 년이 지났으며 내 상황에서는 답변이 작동하지 않습니다.
-
JSON을 반환하는 Google Apps Script 웹 앱이 있으며 저처럼 실행되고 조직의 모든 사용자 가 액세스 할 수 있도록 게시됩니다 . 여러 가지 이유로 다른 질문에서 답변 한대로 익명으로 게시 할 수 없습니다 .
function doGet(request)
{
return ContentService.createTextOutput(JSON.stringify(request)).setMimeType(ContentService.MimeType.JSON);
}
이 웹 앱을 다른 웹 앱에서 호출하려고하는데 UrlFetchApp.fetch(...)
예상되는 JSON 출력 대신 HTML을 반환하는 것 같습니다.
function testIt()
{
var a = UrlFetchApp.fetch("https://script.google.com/a/verizon.com/macros/s/[redacted]/exec");
Logger.log(a.getContentText());
}
두 번째 웹 앱 testIt
은 Google 서버에서 실행되므로 UrlFetchApp.fetch
익명으로 호출 된다는 것을 이해합니다 .
실행중인 사용자의 인증 토큰을 전달하는 방법이 있어야합니다 testIt
.
나는 이것을 시도했지만 작동하지 않았습니다.
var a = UrlFetchApp.fetch("https://script.google.com/a/verizon.com/macros/s/AKfycbxseotobMLXnid5PT_UpBRWZdNrhhX2EOegeCd4b9gFA2VbAvLm/exec", {
"method":"GET",
"muteHttpExceptions": true,
"headers": {
"Authorization" : "Basic " + ScriptApp.getOAuthToken()
}
});
내가 뭘 잘못하고있는 건가요? 아니면 제가 할 수없는 건가요?
기본적으로 내가 소유 한 웹 앱이 있고 다른 사람이 소유 한 웹 앱이 있습니다. 나는 그들이 웹 앱에서 내 웹 앱을 호출하여 웹 앱이 액세스 할 수없는 특정 작업을 수행 할 수있는 방법을 찾고 있습니다 (일부 시트에 일부 데이터를 쓰고 내 계정에서 일부 이메일 보내기).
액세스 토큰을 이용하여 Web Apps에 접속할 경우 다음과 같이 수정하십시오.
"Authorization" : "Basic " + ScriptApp.getOAuthToken()
"Authorization" : "Bearer " + ScriptApp.getOAuthToken()
// DriveApp.getFiles()
. 이에 https://www.googleapis.com/auth/drive.readonly
따라 범위에 포함됩니다. Web Apps의 경우 액세스에 사용할 수 있다고 생각합니다.이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다