Сценарий приложений для авторизации Календаря Google - автономное веб-приложение - PullRequest
0 голосов
/ 22 мая 2019

Я новичок в скриптах приложений и веб-разработке. Я подумал, что было бы неплохо сделать простое приложение, чтобы начать работу.

Цель: отображение будущих событий пользователя.

Проблема: я застрял при получении авторизации пользователя. В настоящее время скрипт отображает мои события. Вместо этого я хочу, чтобы скрипт отображал события пользователя (который обращается к веб-приложению).

Я нашел этот образец в документации. Эта функция получает список событий пользователя. https://developers.google.com/calendar/quickstart/apps-script

Затем я написал основной файл index.html для отображения пользователю строки, заполненной этой функцией.

index.html

<!DOCTYPE html>
<html>

<head>
    <base target="_top">
</head>

<body>
    <script>
        function getEventsOnClick() {
            google.script.run.withSuccessHandler(changeDisplay).listAllEvents();
        }

        function changeDisplay(display) {
            var div = document.getElementById('output');
            div.innerHTML = display;
        }
    </script>

    <div id="output"> Hello! </div>
    <button onclick="getEventsOnClick()">Run Function</button>

</body>

</html>

code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}


function listAllEvents() {
  var calendarId = 'primary';
  var now = new Date();
  var display = ""
  var events = Calendar.Events.list(calendarId, {
    timeMin: now.toISOString(),
    maxResults: 2500,
  });
  if (events.items && events.items.length > 0) {
    for (var i = 0; i < events.items.length; i++) {
      var event = events.items[i];

      if (event.start.date) {
        // All-day event.
        var start = new Date(event.start.date);
        var end = new Date(event.end.date);
        display = display + 'Start: ' + start.toLocaleDateString() + '; End: ' + end.toLocaleDateString() + ". ";
      } else {
        var start = new Date(event.start.dateTime);
        var end = new Date(event.end.dateTime);
        display = display + 'Start: ' + start.toLocaleString() + '; End: ' + end.toLocaleString() + ". ";
      }
    }
  } else {
    display = 'No events found.';
  }
  Logger.log("%s", display)
  return display

}

Опять же, с этим кодом все в порядке. Он отображает события, как ожидалось. Проблема в том, что он отображает мои события, а не пользователя. Поэтому, если я дам URL-адрес пользователя для приложения, я хочу, чтобы это приложение запрашивало авторизацию и отображало его событие. Как бы я это сделал?

Спасибо!

1 Ответ

0 голосов
/ 22 мая 2019

При развертывании приложения убедитесь, что вы решили выполнять его как пользователь, а не как вы.(так как вы по умолчанию).

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