Как интегрировать Firebase в Google Apps Script без использования (устаревшего) секрета базы данных - PullRequest
0 голосов
/ 08 ноября 2018

Некоторое время назад я использовал интеграцию Firebase с Google Apps Script в качестве серверной стороны, и она работала отлично и все еще работала в моих старых проектах.

Но сегодня после создания нового проекта Firebase и новой базы данных в реальном времени я пытался интегрировать проект Firebase в мой проект Google Script Я получил ошибку , и она не работает полностью. И я понимаю, что Firebase устарел секрет базы данных для новых проектов.

Итак, мой вопрос сейчас заключается в том, как решить эту проблему? Есть ли другой способ интеграции Firebase в проект Google Script?

1 Ответ

0 голосов
/ 08 ноября 2018

Вам нужно будет добавить правильные области OAuth в файл манифеста вашего проекта Apps Script, а затем передать параметр access_token (или заголовок Authorization) вместо параметра auth, который вы используете в данный момент. использовать.

Основываясь на Суть Дуга здесь , основные шаги:

  1. Откройте manifest.json в редакторе сценариев, нажав Просмотр > Показать файл манифеста .
  2. Добавьте или измените манифест, чтобы иметь следующие области действия OAuth:

    "oauthScopes": [
      "https://www.googleapis.com/auth/userinfo.email",
      "https://www.googleapis.com/auth/firebase.database",
      "https://www.googleapis.com/auth/script.external_request",
      "https://www.googleapis.com/auth/spreadsheets"
    ]
    

    Эта последняя область предоставляет ей доступ к самой электронной таблице. Если вы используете другой тип GSuite (документ, слайды, форма и т. Д.), Вам потребуется область, соответствующая этому типу.

  3. Теперь вы можете получить токен OAuth из вашего скрипта и добавить его к вашему запросу:

    var response = UrlFetchApp.fetch(databaseUrl, {
      method: "PUT",
      headers: {
        "Content-type": "application/json",
        "Authorization": "Bearer "+ScriptApp.getOAuthToken()
      },
      payload: JSON.stringify(json)
    });
    Logger.log(response.getContentText());
    

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

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