Как пройти Вам нужно разрешение при создании доступа к веб-приложению через скрипт приложения Google - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть два таких скрипта Google Apps:


Скрипт A:

Это веб-приложение.Я использую это как веб-интерфейс.В зависимости от параметра я верну данные, которые я читаю из SpreadSheet, только я могу получить к ним доступ, и я добавлю или отредактирую данные в этой SpreadSheet.

Я опубликовал их со следующими параметрами:

Выполнить как я

Кто имеет доступ к веб-приложению: Кто угодно


Скрипт B: (в SpreadSheet)

Я использую этот SpreadSheet как форму ввода.И я буду просить сценарий A с помощью функции UrlFetchApp.


Проблема: Когда я использую функцию UrlFetchApp, содержимое ответа представляет собой HTML, как на следующем изображении.Я думаю, что это диалог доступа к запросу, который отправит запрос по почте владельцу сценария A.Я пытался поделиться сценарием B проекта для тестирования пользователя.Работает нормально.Но я хочу показать html-диалог и сделать что-то для тестового пользователя, который может отправлять почту в обычном режиме.


Вопросы:

Как показать это html-содержимое надиалог в SpreadSheet B?

Если есть другой способ, которым я не должен делиться сценарием A проекта с другим, скажите мне, пожалуйста!Потому что они могут видеть мой сценарий А., когда я им поделился им.

You need permission

Я использовал ScriptApp.getOAuthToken для проверенного веб-приложения, например:

function requestAPI(request_parameter_string) {
    var param = {
        method      : "get",
        headers     : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
        followRedirects : true,
        muteHttpExceptions:true
    };
    
    Logger.log("run to this");
    var url = "https://script.google.com/macros/s/" + api_id + "/exec?" + request_parameter_string;
    var response = UrlFetchApp.fetch(url,param);
    if(response.getContentText() != "Success"){
        return response.getContentText();
    }
}

1 Ответ

0 голосов
/ 18 декабря 2018

Ваша ситуация выглядит следующим образом.

  • Веб-приложения развернуты как Execute as me snd Who has access to the web app:Anyone.
  • Вы хотите предоставить пользователям доступ к вашим веб-приложениям с помощью доступатокен.

Если мое понимание верно, как насчет этой модификации?

Точки модификации:

  • Если вы получаете доступ к веб-приложениям, которые вы являетесь владельцем, вы можете получить доступ с помощью токена доступа.
  • Если другие пользователи имеют доступ к вашим веб-приложениям, когда файл проекта, в котором развернуты веб-приложения, предоставлен пользователям , пользователи могут получить доступ с помощью маркера доступа.,
    • Если файл не предоставлен в общий доступ, возникает такая ошибка.
    • Если вы используете скрипт, связанный с контейнером, поделитесь им.
    • Если вы используете автономный скрипт, пожалуйста,поделиться им.
  • Для токена доступа в область необходимо включить https://www.googleapis.com/auth/drive.

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...