Nano Hash - криптовалюты, майнинг, программирование

Таблица Google получает параметры из URL

У меня есть приложение, которое связывает одну службу с Google Таблицами по OAuth 1.0.

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

function onOpen(e)
{
    Logger.log( SpreadsheetApp.getActiveSpreadsheet().getUrl() );
    Logger.log( e.source.getUrl() );
}

Но .getUrl() их не содержит.

Согласно > this Я не могу использовать doGet(e) в Таблицах, и из-за OAuth я не могу использовать веб-приложение, потому что мне все еще нужно передавать эти параметры в Таблицы.

Я попытался получить его на стороне клиента с помощью window.top.location.href, но возникли междоменные ошибки.

Вопрос: Могу я его получить? Или это невозможно?


  • См. Затем ответ Сергея Инсаса на указанный вопрос. 28.06.2017
  • Возможный дубликат параметров чтения электронной таблицы Google с собственного URL-адреса 28.06.2017
  • @ Rubén, я уже отвечал на этот вопрос выше. Это не решает проблему через веб-приложение, потому что (если у меня есть веб-приложение) служба, предоставляющая OAuth, открывает ее, а веб-приложение не знает о таблицах и не может писать в них. 28.06.2017
  • Ответ заключается в том, что это невозможно с использованием ограниченного сценария, как было объяснено в упомянутом ответе. С другой стороны, мне непонятно, что вы имеете в виду, говоря, что веб-приложение не знает о Таблицах. Веб-приложение GAS может записывать / читать значения в электронные таблицы с помощью службы электронных таблиц (SpreadsheetApp). 28.06.2017
  • @ Рубен, кажется, я понял, что ты имеешь в виду. Пойду попробую. Спасибо 28.06.2017

Ответы:


1

Итак, частичный ответ на мой вопрос:

Нам нужно 2 разных скрипта. Первый - в виде веб-надстройки для Таблиц, второй - в виде веб-приложения. Далее нам нужно выполнить все шаги, представленные на скриншоте:  steps 1) После шагов 0, 1, 2 поставщик услуг должен перенаправить нас на вспомогательный скрипт (Web App) со следующим кодом:

function doGet(e)
{
    var token    = e.parameter.oauth_token,
        code     = e.parameter.oauth_verifier,
        response;

        if(token && code && Root.setVerificationCode(token, code))
            response = "Success";
        else
            response = 'Error';

    return HtmlService.createHtmlOutput(response);
}

Здесь мы получаем параметры GET и отправляем их в веб-аддон Таблиц (Root). Щелкните Resources -> Libraries и добавьте свой аддон как библиотеку. Root - это просто идентификатор.

2) Код дополнения к Таблицам:

function setVerificationCode(token, code)
{
    var oauth = new OAuth();
    if(oauth.getAccessToken(code))
    {
        // change menu here
        return true;
    }
    else
        return false;
}

Это полные шаги, необходимые для реализации OAuth 1.0.

P.S. Сейчас у меня проблемы с сменой меню, но это будет мой следующий вопрос.

03.07.2017
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..