- 15 марта в некоторых браузерах на Chromium сломается синхронизация: Google меняет доступ к приватным API
- Ключи API Google Отсутствуют предупреждающие сообщения при использовании Chromium Portable
- Как работать с API Google Таблиц (Google Sheets API v4) на языке R с помощью нового пакета googlesheets4
- Содержание
- Зачем переходить на работу с пакетом googlesheet4
- Миграция с googlesheets на googlesheets4
- Установка пакета googlesheets4
- Авторизация
- Авторизация со стандартными значениями аргументов
- Авторизация через собственное приложение
- Как создать своё приложение?
- Авторизация через сервисный аккаунт
- Разница между авторизацией через приложение и через сервисный аккаунт
- Основные функции пакета googlesheets4
- Пример работы с API Google Таблиц на языке R
- Загрузка данных из существующих Google Таблиц
- Создание Google Таблиц с помощью API
- Создание нового листа в Google Таблице
- Дописывание строк в существующий лист
- Перемещение Google Таблиц между папаками Google Диска
- Полезные ссылки
- Заключение
15 марта в некоторых браузерах на Chromium сломается синхронизация: Google меняет доступ к приватным API
Google сообщила в блоге разработчиков, что с 15 марта 2021 года компания ограничит использование Google API в сторонних браузерах на основе движка Chromium. Среди заблокированных функций внутреннего API Google будут: привязка к учетной записи в Google, механизм Click to Call, а также сервис синхронизации настроек и данных пользователя. Google не пояснила, какие именно браузеры на базе движка Chromium лишаться доступа к приватным API компании.
Google в ходе недавнего аудита выяснила, что сторонние разработчики успешно используют данные функции в своих версиях браузеров для интеграции с сервисами Google. Тем самым они фактически злоупотребляют службой Chrome Sync и без разрешения хранят данные, закладки и истории просмотров пользователей на серверах Google. С середины марта эти сервисы API Google будут доступны только в браузере Chrome.
Если пользователи браузеров на основе Chromium ранее заходили из них в свою учетную запись Google Account и сохранили там свои персональные данные, то они смогут продолжать управлять ими на странице My Google Activity (Мои действия в Google) или загрузить с помощью сервиса Google Takeout (Google Архиватор).
В начале 2019 года объявила о введении новых API в Chromium. Через месяц Google отказалась от планируемых изменений в API браузера Chromium, из-за которых становилась нефункциональными большинство блокировщиков рекламы и некоторые другие расширения.
Источник
Ключи API Google Отсутствуют предупреждающие сообщения при использовании Chromium Portable
Когда я использую новый браузер Chromium Portable, он всегда показывает , ключи Google API отсутствуют. Некоторые функции Chromium Portable будут отключены “ после запуска.
Как мне избавиться от этого предупреждения и что это значит?
Чтобы избавиться от сообщения…
… в Windows вы можете использовать командную строку, чтобы установить следующие переменные среды в “no”:
Переменные среды Windows можно также установить на вкладке “Дополнительные системные настройки” панели управления “Система”. После setx . перезагрузки браузер больше не должен иметь сообщение. Для установки переменных на вкладке “Дополнительные системные настройки” может потребоваться отключение до того, как оно вступит в силу.
… в Linux вы можете использовать терминал для установки переменных окружения “no” в оболочке bash:
Последующий запуск браузера с терминала не покажет отсутствующее сообщение ключа API. Чтобы сделать эту настройку постоянной и чтобы закрыть вызовы, нажав на значок, следуйте указаниям здесь чтобы указать переменные окружения, которые влияют на терминал, а также графические логины.
Что касается значения, я думаю, что ответ Драгомира Горанова дает достаточную информацию.
Это означает, что некоторые функции не будут работать. Например, для “API синхронизации Chrome” требуются ключи API.
Для получения дополнительной информации вы можете проверить этот URL-адрес: http://www.chromium.org/developers/how-tos/api-keys
Если вам не ясно, прочитав предоставленную информацию, укажите, что именно.
Мне тоже нужно было избавиться от этого сообщения, поэтому я просто взял предложение mormegil, но применил его к пакетной версии script, которая запускает Chromium.
Мой ниже примерный пакетный файл запустит Chromium в режим KIOSK, но вы можете просто удалить – киоск, если вам это не нужно.
Я сделал это так, потому что не хочу, чтобы эти переменные среды влияли на другие экземпляры Chromium, а на то, что я запускаю с моей версией script.
Источник
Как работать с API Google Таблиц (Google Sheets API v4) на языке R с помощью нового пакета googlesheets4
Электронные таблицы по-прежнему остаются довольно популярным инструментом для работы с данными, а среди различных процессоров электронных таблиц наиболее популярными являются Google Таблицы. Во-первых, это бесплатный инструмент, во-вторых, функционал Google Таблиц достаточно широк, и они предоставляют вам возможность в онлайн режиме получить доступ к данным.
В этой статье мы разберёмся с тем, как на языке программирования R работать с Google Sheets API v4 с помощью пакета googlesheets4 , а точнее:
- Как пройти авторизацию для работы с Google Таблицами по API;
- Рассмотрим основные функции пакета;
- Разберём примеры кода для чтения данных, создания новых таблиц и выполнения других манипуляций с Google Таблицами по API.
Также эта статья поможет пользователям устаревшего пакета googlesheets мигрировать на новый googlesheets4 .
Для тех кому лень читать статью, вот ссылка на 10 минутный, русскоязычный видео урок на YouTube. Остальным добро пожаловать под кат.
Содержание
Если вы интересуетесь анализом данных, и в частности языком R, возможно вам будут интересны мои telegram и youtube каналы. Большая часть контента которых посвящена языку R.
Зачем переходить на работу с пакетом googlesheet4
Если вы уже являетесь активным пользователем языка R, и на практике вам встречались задачи по работе с Google Sheets API наверняка вы уже знакомы с пакетом googlesheet . И вполне резонно, что первый вопрос который возник у вас в голове — «А чем же googlesheets4 лучше?».
На самом деле по функционалу они похожи, возможно даже googlesheets пока имеет больше возможностей, но он работает только с Google Sheets API V3. Google несколько месяцев назад сообщил, что поддержка 3 версии данного API будет прекращена 3 марта 2020 года.
Именно поэтому, даже если вас вполне устраивает пакет googlesheets , вам в любом случае до 3 марта необходимо мигрировать на googlesheets4 , надеюсь данная статья вам в этом поможет.
Миграция с googlesheets на googlesheets4
Что бы максимально упростить миграцию с устаревшего пакета googlesheets на новый googlesheets4 я решил добавить таблицу соответвия новых функций старым.
| googlesheets | googlesheets4 | Краткое описание |
|---|---|---|
| gs_auth() | gs4_auth() | авторизация |
| gs_key() , gs_url() | as_sheets_id() | подключение к таблице |
| gs_read() | range_read() | чтение данных |
| gs_new() | gs4_create() | создание таблицы |
| gs_ws_new() | sheet_add() | создание нового листа |
| gs_add_row() | sheet_append() | дописывание новых строк |
Установка пакета googlesheets4
Для работы с API Google Таблиц, как я уже писал выше, мы будем использовать пакет googlesheets4 , написанный Дженни Брайан из RStudio.
Установить его можно как из CRAN, так и из GitHub.
Устновка из CRAN:
Установка из GitHub:
Авторизация
В пакете googlesheets4 есть по меньшей мере 3 способа авторизации:
- Использовать стандартные параметры функции gs4_auth() .
- Авторизоваться через собственное приложение.
- Авторизоваться через сервисный аккаунт.
Авторизация со стандартными значениями аргументов
Наиболее простой способ авторизации предоставляет функция gs4_auth() со значением аргументов принятых в ней по умолчанию.
Минус этого подхода заключается в том, что вы будете использовать приложение вшитое в пакет по умолчанию, как и 90% других его пользователей. Каждое приложение имеет квоты на количество отправляемых запросов, поэтому с ростом количества пользователей данного пакета возрастает и шанс выйти за выделенные лимиты.
Поэтому я рекомендую самостоятельно создать приложение в Gogle Cloud, и пройти авторизацию с его помощью.
Авторизация через собственное приложение
Как создать своё приложение?
Для создания приложения следуйте приведённым ниже инструкциям:
- Переходим в Google Cloud Console и создаём там проект, если у вас ещё нет созданного. Также для создания проекта можно воспользоваться ссылкой.
- Переходим в «Основное меню» > «API и сервисы» > «Учетные данные».
- «Создать учетные данные» > «Идентификатор клиента OAuth».
- Вводим любое произвольное название для вашего приложения.
- Далее будет сгенерирован id и secret вашего приложения.
- Теперь вам необходимо либо скачать JSON файл с созданными учётными данными, либо скопировать id и секрет созданного вами приложения.
Скачиваем JSON
Копируем ID и секрет приложения
Если вы впервые создаёте приложение в Google Console, то также вам предварительно понадобиться создать «Окно запроса доступа OAuth», просто заполните в нём название и ваш email, насколько я помню больше там никаких обязательных полей нет.
Последний шаг, включаем Google Sheets API, для этого достаточно перейти по этой ссылке и нажать кнопку включить API.
Теперь возвращаемся в RStudio, подключаем пакет и проходим авторизацию через своё приложение.
Проходим авторизацию через JSON файл:
Проходим авторизацию указав в коде ID и Секрет приложения:
После запуска функции gs4_auth() , в приведённых выше примерах кода, вы будете перенаправлены в браузер. Там вы подтверждаете разрешение на доступ к данным и возвращаетесь в RStudio для продолжения работы.
Авторизация через сервисный аккаунт
Для начала надо создать сервисный аккаунт, вот алгоритм действий который вам необходимо выполнить:
- Создать проект в Google Cloud, если он ещё не создан.
- Включить Google Sheets API, для этого необходимо перейти по этой ссылке.
- Для создания сервисного аккаунта перейдите по этой ссылке.
- Заполните его название и описание (при необходимости) и нажмите «Создать».
- Роль устанавливать не надо, поэтому жмём «Продолжить».
- В следующем окне жмём «Создать ключ» > Тип ключа выбираем JSON > Создать.
- Запоминаем расположение и название JSON файла, при сохранении вы можете дать ему любое название.
- Жмём «Готово».
Теперь у вас появился сервисный аккаунт, откройте его и скопируйте почту.
При авторизации под сервисным аккаунтам вы можете работать только с теми Google Таблицами к которым вы предоставили доступ для созданного сервисного аккаунта по его почте. Доступ предоставляется также, как и обычному пользователю.
- Открываем Google Таблицу.
- Жмём «Настройка доступа».
- Открываем доступ на почту созданного сервисного аккаунта.
Проходим авторизацию через сервисный аккаунт:
При авторизации через сервисный аккаунт вам не понадобится подтверждать доступ к данным через браузер, но ещё раз напомню, что вам надо отдельно расшаривать доступ сервисному аккаунту к каждой Google Таблице, с которой вам необходимо работать по API.
Разница между авторизацией через приложение и через сервисный аккаунт
Основными отличиями между авторизацией через приложение и через серверный аккаунт являются:
- При авторизации через сервисный аккаунт не требуется подтверждать доступ к данным через браузер.
- Сервисный аккаунт имеет доступ только к тем Google таблицам к которым вы сами ему предоставили доступ на почту. При авторизации через приложение вы подтверждаете доступ ко всей доступной вашему Google аккаунту информации.
По этим двум причинам наиболее предпочтительным способом автризации является авторизация через сервисный аккаунт. Но важно понимать, что если кто-то посторонний получит доступ к JSON файлу с ключём от сервисного аккаунта, он автоматически завладеет всеми правами и доступами которые вы предоставили этому сервисному аккаунту.
Основные функции пакета googlesheets4
Все функции пакета googlesheets4 разделены на 3 группы, каждая группа функций имеет свой префикс, который говорит об области действия этой функции:
- gs4_ — объединяет функции реализующие операции над книгой GoogleSheets
- sheet_ — операции над рабочими листами
- range_ — операции над отдельными диапазонами ячеек
- cell_ — операции над отдельными ячейками
Давайте рассмотрим основные функции пакета googlesheets4.
- gs4_auth() — Авторизация;
- gs4_create() — Создаёт новую Google Таблицу;
- gs4_browse() — Открывает Google Таблицу в браузере;
- as_sheets_id() — Инициализирует подключение к Google Таблице, в качестве единственного аргумента принимает URL или ключ нужной Google Таблицы;
- range_read() — Считывает данные из указанного листа Google Таблицы;
- sheet_write() — Записывает данные в Google Таблицу, при необходимости создаёт новый лист. Если вы пытаетесь записать данные на существующий лист то все данные будут перезаписаны;
- sheet_append() — Дописывает данные на уже существующий лист;
- sheet_add() — Создаёт новые листы в существующей Google Таблице;
- sheet_delete() — Удаляет существующие листы из Google Таблицы;
- sheet_names() — Выводит вектор содержащий имена листов Google Таблицы.
Пакет содержит также множество вспомогательных функций, но думаю перечисленных выше вам будет более чем достаточно для выполнения любых действий с Google Таблицами.
Пример работы с API Google Таблиц на языке R
Теперь я приведу примеры кода для выполнения основных операций с Google Таблицами.
Для примера нам потребуются какие-нибудь тестовые наборы данных. Что бы не изобретать велосипед мы будем использовать созданную мной Google Таблицу и встроенные в R датасеты iris , mtcars и ToothGrowth .
Загрузка данных из существующих Google Таблиц
Считывание данных из Google Таблицы является наиболее часто используемой операцией.
Алгоритм действий достаточно прост, вам необходимо инициализировать подключение к нужной таблице, и считать данные с существующего в ней листа.
Для подключения вам необходимо воспользоваться функцией as_sheet_id() , в которую следуют передать ключ или URL адрес Google Таблицы.
Как вы поняли из приведённого выше примера ключ это часть URL адреса таблицы, которая находится между /d/ и следующие слешем .
Для чтения данных в googlesheets4 предназначена функция range_read() .
Пример кода для чтения данных из Google Таблицы
Процесс подключения и чтения данных можно записать более компактно используя пайплайны.
Создание Google Таблиц с помощью API
Для создания новой таблицы используйте функцию gs4_create() и следующие её аргументы.
- name — Имя Google Таблицы;
- locale — Региональные настройки;
- timeZone — Часовой пояс;
- sheets — Принимает вектор с именами листов, либо список, название каждого элемента списка будет сконвертировано в имя листа, а в качестве значений вы можете передать дата фреймы которые будут записаны на эти листы.
Пример создания Google Таблицы
Приведённый выше код создаст новую Google Таблицу «my_new_dox», в которой будут 2 листа: mtcars, iris.
Создание нового листа в Google Таблице
Итак, только что мы создали новую Google Таблицу, и при этом инициировали объект подключения к ней, который назвали ss .
Теперь мы можем проводить с созданной таблицей различные манипуляции, например создать в ней новый лист.
Пример кода для создания нового листа с данными
Функция sheet_write() имеет 3 основных аргумента:
- data — Дата фрейм с данными которые вы хотите записать на новый лист, или перезаписать данные на существующем листе.
- ss — Объект подключения к Google Таблице, который вы можете получить с помощью функций as_sheets_id() или gs4_create() .
- sheet — Название листа который будет создан в Google Таблице, или на котором будут перезаписаны данные.
Дописывание строк в существующий лист
Ещё одна достаточно важная операция — добавление данных на уже существующий лист.
Осуществляется эта операция функцией sheet_append() , которая имеет 3, уже знакомых вам аргумента.
- data — Дата фрейм с данными которые вы хотите дописать на существующий лист.
- ss — Объект подключения к Google Таблице, который вы можете получить с помощью функций as_sheets_id() или gs4_create() .
- sheet — Название листа на который требуется дописать строки.
При создании таблицы my_new_dox мы записали на лист iris только первые 6 строк с данными, давайте допишем оставшиеся.
Пример кода для добавления строк на существующий лист
Перемещение Google Таблиц между папаками Google Диска
Ещё одна операция которая может вам пригодиться, но в данном случае помимо googlesheets4 вам понадобится пакет googledrive .
Установка googledrive
Переместить созданную ранее Google Таблицу можно с помощью функции drive_mv() . Но предварительно необходимо пройти автооризацию с помощью функции drive_auth() .
Авторизация в пакете googledrive ничем не отличается от описанной в начале этой статьи, т.к. оба рассматриваемых пакета для авторизации используют вспомогательный пакет gargle . Авторизовавшись с попощью функции drive_auth() вы можете передать полученный токен в пакет googlesheets4 для совместного использования: gs4_auth(token = drive_token()) .
Далее открываем на Google Диске нужную папку и копируем её URL или ключ. Если нужная папка ещё не создана её можно создать с помощью функции drive_mkdir() .
Для инициализации подключения к папке используем функцию as_id() .
Пример кода для перемещения Google Таблицы из одной папки Google Диска в другую
Полезные ссылки
В этом разделе приведу несколько полезных ссылок по теме статьи:
Заключение
Описанных в статье возможностей пакета googlesheets4 достаточно для решения подавляющего большинства задач, в которых необходимо использовать Google Sheets API.
На данный момент googlesheets4 находится в стадии активной разработки. Автор пакета планирует реализовать его функционал в полном объёме к марту 2020 года, в связи с чем в статье возможны корректировки и дополнения по мере изменения или расширения возможностей пакета.
Если вы дочитали до этого параграфа, то наверняка интересуетесь, и скорее всего уже используете язык R в работе. Если это так, то думаю вам будет интересен мой телеграм и youtube каналы, большая часть контента которых посвящена языку R.
Источник