Google Apps Script просит разрешения: как правильно авторизовать скрипт и не дать доступ мошенникам

Обсудить
Google Apps Script просит разрешения: как правильно авторизовать скрипт и не дать доступ мошенникам
Реклама. АО «ТаймВэб». erid: 2W5zFHM3ZNq

Нейросети и автоматизация становятся все более доступными, поэтому многие пользователи начинают копировать готовые скрипты из интернета для работы с Google Таблицами, Gmail или Google Drive. Вы нашли подходящий код, вставили его в редактор Apps Script, нажали кнопку запуска – и вдруг появляется окно с предупреждением о том, что приложение не проверено Google. Дальше идут непонятные диалоги про разрешения, кнопки «Дополнительно», «Небезопасно» и список того, к чему скрипт хочет получить доступ. Что со всем этим делать и стоит ли переживать?

На самом деле процесс авторизации – это нормальный защитный механизм Google, который гарантирует, что сторонний код не получит доступ к вашим данным без вашего явного согласия. Однако для новичков весь этот процесс выглядит пугающе, особенно когда речь идет о собственных скриптах или коде из проверенных источников. В этой статье разберемся, как правильно проходить авторизацию, какие разрешения бывают, как отличить безопасный скрипт от потенциально опасного и что делать, если что-то пошло не так.

Почему Google Apps Script запрашивает разрешения

Представьте ситуацию: вы написали скрипт, который автоматически отправляет еженедельные отчеты по почте. Этому скрипту нужно уметь читать данные из таблицы и отправлять письма от вашего имени. Без авторизации скрипт просто не сможет выполнить эти действия – Google заблокирует любую попытку доступа к личным данным.

Система разрешений основана на OAuth Scopes – это специальные строки, которые определяют конкретный уровень доступа. Например, один scope дает право только читать таблицы, другой – читать и изменять их, третий – отправлять письма. Apps Script автоматически определяет, какие разрешения нужны вашему коду, анализируя используемые функции. Если в коде есть SpreadsheetApp.getActiveSpreadsheet(), скрипт запросит доступ к таблицам. Если присутствует GmailApp.sendEmail() – добавится разрешение на отправку писем.

Отображение видов запросов в коде Google Apps Script

Важно понимать, что авторизация происходит один раз для каждого набора разрешений. Если вы добавите в код новую функцию, которая требует дополнительных прав, Google попросит вас заново подтвердить разрешения. Это сделано для безопасности – вы всегда видите, что именно может делать скрипт с вашими данными.

Пошаговая авторизация: что делать с каждым окном

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

Шаг 1. Диалог «Требуется авторизация»

Когда вы впервые запускаете скрипт, который обращается к вашим данным, появляется первое окно с заголовком «Требуется авторизация» или «Authorization required». В нем написано, что для продолжения работы скрипту нужны разрешения, и предлагается кнопка «Проверить разрешения» (или «Review Permissions»).

Первый запуск созданого кода Google Apps Script для выдачи разрешений

Это окно – просто предупреждение о том, что дальше начнется процесс авторизации. Нажмите кнопку «Проверить разрешения», чтобы продолжить.

Шаг 2. Выбор аккаунта Google

Следующим шагом Google предложит выбрать аккаунт, от имени которого будет работать скрипт. Если вы вошли только в один аккаунт, он будет выбран автоматически. Если у вас открыто несколько аккаунтов Google одновременно, выберите тот, в котором находится таблица или документ со скриптом.

Важный нюанс: разрешения привязываются к конкретному аккаунту. Если вы позже переключитесь на другой аккаунт Google и попробуете запустить тот же скрипт, вам придется пройти авторизацию заново для нового аккаунта.

Шаг 3. Предупреждение «Эксперты Google не проверяли это приложение»

Вот тут начинается самое интересное. После выбора аккаунта появляется окно с предупреждением «Эксперты Google не проверяли это приложение» или на английском «This app isn't verified». Рядом может быть красный значок щита, что выглядит довольно устрашающе.

Предупреждение безопасности при первом запуске Google Apps Script

Почему это происходит? Google показывает это предупреждение для всех скриптов, которые запрашивают доступ к чувствительным данным (почта, диск, календарь) и при этом не прошли официальную проверку компании. Проверку проходят только публичные приложения, которые распространяются через Google Workspace Marketplace. Ваш собственный скрипт или код, скопированный из интернета для личного использования, естественно, не будет проверен.

Главное, что нужно понять: если вы сами написали скрипт или скопировали код из надежного источника и видите его содержимое, это предупреждение можно игнорировать. Google не может знать, что этот скрипт создали именно вы, поэтому показывает стандартное предупреждение на всякий случай.

Шаг 4. Переход через «Дополнительно»

В окне с предупреждением найдите ссылку «Дополнительно» (или «Advanced») внизу слева. Нажмите на нее – появится дополнительный текст с объяснением и ссылка «Перейти на страницу [название вашего скрипта] (небезопасно)» или «Go to [script name] (unsafe)».

Переход к предоставлению разрешений для Google Apps Script

Формулировка «небезопасно» снова выглядит пугающе, но она относится только к тому факту, что приложение не прошло официальную проверку. Если вы уверены в источнике кода, нажимайте на эту ссылку.

Шаг 5. Проверка запрашиваемых разрешений

Теперь вы видите экран с перечнем того, к чему скрипт запрашивает доступ. Здесь могут быть записи вроде:

  • просмотр таблиц, в которых установлено это приложение, и управление ими;
  • просмотр электронной почты и управление ею;
  • просмотр файлов на Google Диске и управление ими;
  • отправка электронной почты от вашего имени.

Выбор учетной записи для предоставления разрешений Google Apps Script

Это критически важный момент. Внимательно прочитайте список и убедитесь, что запрашиваемые разрешения соответствуют тому, что должен делать скрипт. Например, если вы запускаете простой скрипт для подсчета суммы в таблице, а он просит доступ к Gmail – это повод насторожиться и проверить код еще раз.

Шаг 6. Подтверждение и завершение

Если все в порядке, нажмите кнопку «Продолжить» внизу экрана. После этого окно авторизации закроется, и скрипт получит необходимые права для работы. Теперь он будет выполняться без дополнительных запросов, пока вы не добавите в код функции, требующие новых разрешений.

Полное предоставление разрешений для Google Apps Script

Весь процесс нужно пройти только один раз для каждого скрипта. При следующих запусках того же кода авторизация не понадобится.

Какие бывают разрешения и что они означают

Разрешения в Google Apps Script бывают разными по уровню доступа. Разберем основные варианты, с которыми вы можете столкнуться.

Доступ к Google Таблицам:

  • https://www.googleapis.com/auth/spreadsheets – полный доступ к таблицам (чтение и изменение).
  • https://www.googleapis.com/auth/spreadsheets.readonly – только чтение таблиц без возможности изменения.
  • https://www.googleapis.com/auth/spreadsheets.currentonly – доступ только к той таблице, в которой запущен скрипт.

Доступ к Gmail:

  • https://www.googleapis.com/auth/gmail.send – только отправка писем.
  • https://www.googleapis.com/auth/gmail.readonly – чтение почты без возможности изменений.
  • https://mail.google.com/ – полный доступ ко всей почте (чтение, отправка, удаление).

Доступ к Google Drive:

  • https://www.googleapis.com/auth/drive – полный доступ ко всем файлам на диске.
  • https://www.googleapis.com/auth/drive.readonly – только чтение файлов.
  • https://www.googleapis.com/auth/drive.file – доступ только к файлам, созданным самим скриптом.

Другие популярные разрешения:

  • https://www.googleapis.com/auth/calendar – управление календарем.
  • https://www.googleapis.com/auth/script.external_request – отправка запросов на внешние сайты и API.
  • https://www.googleapis.com/auth/userinfo.email – получение вашего email-адреса.

Обратите внимание на разницу между разрешениями с пометкой readonly и без нее. Первые дают только право на чтение данных, вторые – на полноценную работу с изменением и удалением. Если скрипт должен только анализировать данные без их изменения, достаточно разрешения readonly. Если же требуется вносить правки – понадобится полный доступ.

В большинстве случаев при виде окна с предоставляемыми разрешениями вы будете видеть оформленный текст на русском языке вместо подобных ссылок, поэтому с пониманием разрешений не должно возникнуть проблем. Данные ссылки больше используются для отладки или просмотра манифестов.

Выборочные разрешения: новая функция 2025 года

С января 2025 года Google внедрил важное обновление в систему авторизации Apps Script – теперь пользователи могут выбирать, какие именно разрешения предоставить скрипту, а какие оставить неактивными. Эта функция называется granular permissions или выборочные разрешения.

Раньше система работала по принципу «все или ничего» – либо вы соглашаетесь со всеми запрашиваемыми разрешениями, либо отказываетесь от запуска скрипта полностью. Теперь же в окне авторизации появились галочки напротив каждого типа доступа, которые можно включать и выключать по отдельности.

Выборочное предоставление разрешений для Google Apps Script

Представьте ситуацию: вы нашли скрипт, который должен анализировать данные в таблице и отправлять отчет по почте. Скрипт запрашивает доступ к Google Таблицам и Gmail. Если вы пока хотите только протестировать анализ данных без отправки писем, можете снять галочку с разрешения Gmail и оставить только доступ к таблицам. Скрипт запустится, выполнит анализ, но при попытке отправить письмо выдаст ошибку о недостатке прав.

Это полезно в нескольких случаях:

  • Когда вы хотите протестировать скрипт частично, не давая ему полный доступ сразу.
  • Когда скрипт имеет несколько независимых функций, и вам нужна только одна из них.
  • Когда вы не уверены в безопасности части функционала и хотите ограничить риски.

Важный момент: если скрипт попытается выполнить действие, на которое у него нет разрешения, работа прервется с ошибкой. Google Apps Script автоматически запросит недостающее разрешение при следующем запуске функции, которая его требует. Вы увидите новое окно авторизации только с этим конкретным разрешением.

Выборочные разрешения особенно удобны при работе со скриптами из интернета, когда вы не до конца уверены в их безопасности. Можно давать доступ постепенно, по мере того как убеждаетесь в корректности работы кода.

Когда можно доверять скрипту

Теперь самый важный вопрос – как понять, безопасен ли скрипт, и стоит ли давать ему запрашиваемые разрешения. Есть несколько признаков, по которым можно оценить уровень риска.

Зеленые флаги (можно доверять)

Вы сами написали скрипт. Если код создан вами с нуля или собран из проверенных фрагментов, предупреждение «Эксперты Google не проверяли это приложение» можно смело игнорировать. Вы знаете, что делает каждая строка кода.

Скрипт от официального источника. Код из официальной документации Google, примеры с developers.google.com, скрипты из статей на авторитетных технических ресурсах обычно безопасны. Также можно доверять скриптам от известных разработчиков с хорошей репутацией.

Получение кода с официального сайта для Google Apps Script

Минимальные разрешения. Скрипт запрашивает ровно те права, которые нужны для его работы, и не больше. Например, если задача – подсчитать сумму в столбце таблицы, достаточно разрешения spreadsheets.currentonly. Запрос полного доступа к диску или почте в этом случае был бы странным.

Доступен исходный код. Вы можете открыть редактор Apps Script (Расширения – Apps Script) и посмотреть, что именно делает код. Если скрипт короткий и понятный, проверить его безопасность легко даже без глубоких знаний программирования.

Переход к редактору кода для Google Apps Script

Разрешения только на чтение. Скрипт запрашивает readonly-доступ – это значит, он сможет только читать данные, но не изменять, не удалять и не отправлять их куда-либо. Уровень риска минимальный.

Красные флаги (стоит насторожиться)

Неизвестный источник. Вы нашли скрипт на случайном форуме, в комментариях или получили ссылку от незнакомого человека. Источник не имеет репутации, отзывов или подтверждения надежности.

Избыточные разрешения. Скрипт для работы с таблицами вдруг запрашивает полный доступ к Gmail (https://mail.google.com/). Или простой калькулятор просит права на Google Диск. Если разрешения явно превышают необходимый функционал – это повод задуматься.

Полный доступ к почте без явной причины. Разрешение https://mail.google.com/ дает скрипту возможность читать все письма, отправлять сообщения от вашего имени, удалять переписку. Такой доступ должен быть обоснован очевидной необходимостью.

Ознакомление с подозрительными разрешениями Google Apps Script

Скрытый или запутанный код. Если при попытке посмотреть исходный код вы видите нечитаемую кашу из однобуквенных переменных, странных конструкций или код специально запутан – лучше не рисковать.

Запрос внешних соединений без объяснения. Разрешение script.external_request позволяет скрипту отправлять данные на любые внешние сайты. Если скрипт якобы работает только с вашей таблицей, но при этом просит доступ к внешним запросам – возможно, он собирается куда-то отправить ваши данные.

Как проверить безопасность скрипта

Если вы сомневаетесь в коде, перед авторизацией выполните несколько простых проверок.

  1. Откройте исходный код. В документе, таблице или форме выберите Расширения – Apps Script. Откроется редактор с полным текстом скрипта. Даже если вы не программист, можно найти подозрительные моменты.Переход к редактору кода для Google Apps Script

  2. Прочитайте код или попросите помощи. Поищите в коде вызовы функций, связанных с отправкой данных: UrlFetchApp.fetch(), GmailApp.sendEmail(), обращения к внешним URL. Если не уверены в своих силах, скопируйте код и попросите проверить его знающего человека или задайте вопрос в тематическом сообществе.Ручной просмотр кода Google Apps Script

  3. Проверьте соответствие разрешений и кода. Если в коде используется только SpreadsheetApp, а скрипт просит доступ к Gmail – это несоответствие. Запрашиваемые разрешения должны логично вытекать из того, что делает код.

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

  5. Тестируйте на копии данных. Создайте копию таблицы или документа и запустите скрипт там. Если что-то пойдет не так, ваши основные данные останутся в безопасности.Создание копии документа при тестировании Google Apps Script

Главное правило безопасности: если сомневаетесь – лучше откажитесь от авторизации. Потенциальная польза от автоматизации не стоит риска потери доступа к аккаунту или утечки личных данных.

Частые проблемы при авторизации и их решение

Даже после успешной авторизации могут возникать различные ошибки и неожиданные ситуации. Обычно они связаны с особенностями работы триггеров, устаревшими разрешениями или конфликтами между несколькими аккаунтами Google. Большинство проблем решается за несколько минут, если знать, где искать причину.

  • Триггер не работает после авторизации. Скрипт запускается вручную, но автоматический триггер выдает ошибку «Authorization is required». Простые триггеры вроде onOpen() или onEdit() имеют ограничения и не могут обращаться к сервисам, требующим авторизации. Замените простой триггер на устанавливаемый: откройте редактор Apps Script, найдите значок будильника слева (Триггеры), нажмите «Добавить триггер» и настройте его для нужной функции.Ручное создание триггеров вместо автоматизации в Google Apps Script

  • Скрипт снова запрашивает разрешения. Вы уже авторизовались, но при следующем запуске появляется окно авторизации. Обычно это происходит, когда в код добавлены новые функции, требующие дополнительных разрешений – просто пройдите авторизацию заново. Если проблема повторяется без изменений в коде, возможно, истекли права доступа (это случается редко, обычно после долгого неиспользования).

  • Ошибка «У вас нет разрешения на вызов...». Скрипт не может выполнить действие, хотя разрешения вроде бы даны. Триггер был создан до авторизации и не имеет необходимых прав. Запустите функцию вручную один раз из редактора Apps Script – нажмите на название функции и выберите «Выполнить». После этого триггеры начнут работать корректно.Повторный запуск выполнения Google Apps Script

  • Проблемы с несколькими аккаунтами Google. При переключении между аккаунтами скрипт перестает работать или просит авторизацию. Разрешения привязаны к конкретному аккаунту, поэтому при смене аккаунта нужна повторная авторизация. Работайте с одним активным аккаунтом или используйте разные браузеры (профили браузера) для разных аккаунтов.

  • Общая ошибка «Что-то пошло не так». Авторизация прерывается без конкретных пояснений. Попробуйте открыть авторизацию в режиме инкогнито, очистите кеш и cookies для google.com или используйте другой браузер. Если не помогает, проверьте статус сервисов Google на странице google.com/appsstatus – возможно, идут технические работы.Проверка работы служб Google Apps Script

В большинстве случаев проблемы с авторизацией решаются повторным запуском скрипта, пересозданием триггеров или очисткой кеша браузера. Если ничего не помогает, попробуйте скопировать код в новый проект Apps Script и авторизовать его с нуля.

Как отозвать разрешения, если передумали

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

Google позволяет в любой момент удалить разрешения для любого скрипта или приложения. Процесс занимает буквально минуту.

  1. Откройте страницу управления доступом в вашем Google-аккаунте: https://myaccount.google.com/permissions.

  2. Войдите в аккаунт, если еще не авторизованы.

  3. Найдите в списке название вашего скрипта. Скрипты из Apps Script обычно отображаются с названием проекта, которое вы указали в редакторе.Переход к откату всех выданных разрешений Google Apps Script

  4. Нажмите на название скрипта – откроется подробная информация о том, какие разрешения ему выданы.

  5. Нажмите кнопку «Отмена всех связей с сервисом».Откат всех выданных разрешений Google Apps Script

  6. Подтвердите действие во всплывающем окне.

После отзыва разрешений скрипт немедленно потеряет доступ к вашим данным. Если вы попытаетесь запустить его снова, появится окно авторизации – нужно будет заново предоставить разрешения.

Что происходит после отзыва:

  • Скрипт перестает работать и выдает ошибку авторизации при попытке запуска.
  • Все триггеры, связанные с этим скриптом, прекращают выполняться.
  • Ранее созданные файлы или отправленные письма остаются без изменений – отзыв не удаляет уже выполненные действия.
  • Скрипт не может получить доступ к вашим данным, даже если его код содержит попытки обращения к ним.

Отзыв разрешений полностью безопасен и обратим. Если позже вы решите снова использовать скрипт, просто запустите его, и процесс авторизации начнется заново.

Заключение

Авторизация Google Apps Script – это продуманный защитный механизм, который гарантирует контроль над тем, какие скрипты имеют доступ к вашим данным. Предупреждение «Эксперты Google не проверяли это приложение» абсолютно нормально для собственных скриптов и кода из надежных источников – Google просто не может знать, что автор скрипта именно вы. Если вы уверены в источнике кода и проверили запрашиваемые разрешения, можно смело проходить все шаги авторизации.

Наши постоянные авторы и читатели делятся лайфхаками, основанными на личном опыте. Полная свобода самовыражения.

Комментарии

С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
С помощью соцсетей
У меня уже есть аккаунт Войти
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email вашего аккаунта
Ваш баланс 10 ТК
1 ТК = 1 ₽
О том, как заработать и потратить Таймкарму, читайте в этой статье
Чтобы потратить Таймкарму, зарегистрируйтесь на нашем сайте