Хранение ключей и секретов API в пользовательском свойстве Google AppScript - PullRequest
0 голосов
/ 01 мая 2020

Я новичок в Google AppScript, пытаюсь кодировать соединитель для пользовательского API REST. Для этого API мне нужен ключ API (или секретный ключ), то есть для каждого пользователя. Поскольку хранить секрет в открытом тексте внутри скрипта не самая лучшая идея, я подумал сохранить его в Google PropertyService и извлечь его оттуда. Например:

var userProperties = PropertiesService.getUserProperties();
var apiKey = userProperties.getProperty('MY_SECRET')

Но я не понимаю, как пользователь может сначала сохранить ключ? Я не нашел места, где пользователь (в данном случае я) мог просматривать или редактировать свойства. Затем я нашел это хорошее введение в пользовательские свойства , которое создает меню в контейнере сценария, позволяющее пользователю вводить секреты вручную.

const API_KEY = 'API_KEY';

var ui = SpreadsheetApp.getUi();
var userProperties = PropertiesService.getUserProperties();


function onOpen(){
  ui.createMenu('API Keys')
    .addItem('Set API Key', 'userPromptApiKey')
    .addItem('Delete API Key', 'deleteApiKey')
  .addToUi();
}


function userPromptApiKey(){
  var userValue = ui.prompt('API Key ', ui.ButtonSet.OK);
  // ToDo: add current key to the prompt
  userProperties.setProperty(API_KEY, userValue.getResponseText());
}


function deleteApiKey(){
  userProperties.deleteProperty(API_KEY)
}

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

SpreadsheetApp.getUi();

не работает. Любая идея или рекомендация о том, как с этим бороться? Есть ли другой рекомендуемый способ работы с секретами?

1 Ответ

1 голос
/ 01 мая 2020

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

Вы можете создать Веб-приложение для создания интерфейса для получения ключей.

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

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