#google-apps-script #cookies #authorization
#google-apps-script #файлы cookie #авторизация
Вопрос:
Я изучал возможность использования файлов cookie для создания сеансов и отслеживания привилегий пользователей. Итак, я создал базовый код для веб-приложения, в котором вы нажимаете кнопку, и открывается доступ к электронной почте активного пользователя. Вот скрипт Google (Code.gs ):
function doGet(){
return HtmlService.createHtmlOutputFromFile('Index');
}
function getUser(){
var email = Session.getActiveUser().getEmail();
return email;
}
Вот HTML-скрипт (Index.html ):
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<button onclick="recordUser()">Click me</button>
<script>
function recordUser(){
google.script.run.withSuccessHandler(function(email){
alert(email " is the user email.");
}).getUser();
}
</script>
</body>
</html>
«Для выполнения этого действия требуется авторизация». Насколько я понимаю, это означает, что каждый пользователь веб-приложения должен каким-то образом предоставить авторизацию скрипту Google, разрешающему доступ к электронной почте. Итак, я попытался сделать так, чтобы скрипт имел область действия email info. На самом деле это не работает — и я тоже этого не ожидал.
Вот как выглядят мои свойства проекта> области
Итак, есть ли какой-либо способ получить доступ к активным пользователям с помощью запроса авторизации или с помощью какого-либо обходного пути? Спасибо.
Комментарии:
1. Привет, не совсем уверен, в чем проблема. Если у вас есть этот код и вы публикуете его как веб-приложение, Google обрабатывает авторизацию, файлы cookie и т. Д.
2. Создайте дополнение
3. @miturbe Извините, я буду более конкретным. Я просто пытаюсь получить электронную почту нового пользователя моего веб-приложения одним нажатием кнопки прямо сейчас (в будущем я, вероятно, посмотрю, смогу ли я сделать это при открытии веб-приложения). Однако, когда я запускаю веб-сайт, 1) кнопка не появляется. 2) по-видимому, пользователю необходимо предоставить авторизацию для запуска .getActiveUser().getEmail(). Итак, я спрашиваю, есть ли способ разрешить пользователю предоставлять эту авторизацию или есть лучший метод.
4. @Cooper как конкретно это поможет, создав дополнение? Я не делал этого раньше.
5. Когда вы публикуете как веб-приложение, пользователь должен авторизоваться перед загрузкой страницы. Вы не можете контролировать, когда пользователь авторизует. Кроме того, если это будет сценарий publc, они получат огромное предупреждение о том, что приложение не проверено … посмотрите этот пример script.google.com/macros/s /… source:docs.google.com/spreadsheets/d /…
Ответ №1:
Session.getActiveUser().getEmail()
возвращает адрес электронной почты текущего пользователя, но есть пара вещей, которые нужно сделать в первую очередь:
1. При развертывании вашего веб-приложения в разделе Выполнить приложение как: выберите Пользователь, получающий доступ к веб-приложению.
2. Перед запуском веб-приложения пользователь должен авторизовать веб-приложение для запуска от его имени.
Это должно сработать, я уже протестировал это.