Не программируй - вставляй и копируй. OAuth 2.0 авторизация API Google, получение токенов доступа (refresh и access token)

Публикация № 1247448

Разработка - Системная интеграция - Интеграция с WEB

Авторизация OAuth Google API access token refresh Sheets Drive Calendar АПИ Гугл Таблицы Диск Календарь Аутентификация

Без программирования, в несколько кликов - простой и быстрый способ трехногой авторизации по протоколу OAuth 2.0 в Google APIs. Получение refresh и первого access token для использования в HTTP-запросах из 1С к API Google. Для приложений типа "Компьютеры".

При использовании некоторых API Google (например Sheets API, Calendar API, Drive API) - в HTTP-запросах необходимо указывать заголовок "Authorization:Bearer {access_token}". Когда я знакомился с Google Sheets API, то отметил, что уйдет далеко не пара минут на изучение и программирование процесса получения токена, который позволяет обратиться к этому API. Причем refresh token выдается раз и практически навсегда. Получается, нужно тратить время на программирование того, что понадобится один раз. Предлагаю быстрый способ получения refresh и первого access токенов вообще без программирования. Работает для приложений типа "Компьютеры".

Можете попробовать прямо здесь. Нажмите "Get code", войдите/выберите свой аккаунт гугл, разрешите доступ, получите код, вставьте полученный код в зеленое поле "code:" и нажмите "Get tokens". Браузер покажет необходимые токены.

scope:

client_id:

code:

client_id:

client_secret:

Если у Вас есть свой Идентификатор клиента OAuth 2.0 типа "Компьютеры" (что у Вас есть - смотрите в https://console.developers.google.com/apis/credentials), то можете вставить сюда свои scope, client_id (в 2 поля), client_secret - и получить свои токены. Или создайте новые учетные данные с типом "Приложение для ПК" по этой же ссылке, определитесь с нужными API и scope - и пробуйте.


Вкратце на этом всё, процесс закончен.

Но если пробовать здесь не хотите - можете создать у себя текстовый файл с расширением html следующего содержания:

<!DOCTYPE HTML>
<html>

<head>
<style type="text/css">
.danstyle {}
.danstyle label {
  display: inline-block;
  width: 100px;
}
.danstyle input {
  width: 500px;
}
</style>
</head>

<body>

  <form class="danstyle" target="_blank" action="https://accounts.google.com/o/oauth2/v2/auth" method="get">
   <p><label>scope:</label><input type="text" name="scope" value="https://www.googleapis.com/auth/calendar.settings.readonly https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/drive.appdata"></p>
   <p><label>client_id:</label><input type="text" name="client_id" value="1043317717582-spu6uac6ajeu4kht399nabq41jrh4nub.apps.googleusercontent.com"></p>
   <input type="hidden" name="redirect_uri" value="urn:ietf:wg:oauth:2.0:oob">
   <input type="hidden" name="response_type" value="code">
   <p><input style="width:100px;" type="submit" value="Get code"></p>
  </form>
  <br>
  <form class="danstyle" action="https://oauth2.googleapis.com/token" enctype="application/x-www-form-urlencoded" method="post">
   <p><label>code:</label><input style="background-color: #90ee90;" type="text" name="code"></p>
   <p><label>client_id:</label><input type="text" name="client_id" value="1043317717582-spu6uac6ajeu4kht399nabq41jrh4nub.apps.googleusercontent.com"></p>   
   <p><label>client_secret:</label><input type="text" name="client_secret" value="1dEoQ9sdUgsqcQahYz3nP9dk"></p>
   <input type="hidden" name="redirect_uri" value="urn:ietf:wg:oauth:2.0:oob">
   <input type="hidden" name="grant_type" value="authorization_code">
   <p><input style="width:100px;" type="submit" value="Get tokens"></p>
  </form>

</body>

</html>

Сохраняем html-файл (я назвал его GoogleOauth.html), открываем его в интернет-браузере.

Первым делом жмем кнопку "Get code". Если в браузере Вы еще не входили в аккаунт гугл - предложат войти. Если входили - откроется страница выбора аккаунта. К данным этого аккаунта мы предоставляем доступ приложению:

Кликаем аккаунт, отвечаем "Разрешить" на вопросы, откроется экран согласия (consent screen):

Жмем кнопку "Разрешить" - попадаем на страницу с кодом:

Копируем полученный код, возвращаемся к странице с нашим файлом GoogleOauth.html, вставляем в зеленое поле "code:" полученный код:

Наконец, нажимаем кнопку "Get tokens". В итоге браузер перейдет на страницу, где будет выведен текст JSON следующего содержания:

В результате мы получили "вечный" refresh_token и временный access_token, которые далее используем в запросах к API Google.

В примере выше для демонстрации по умолчанию подставляются client_id, client_secret и минимальные scope от моей тестовой учетки. Свою учетку Вы можете создать в консоли разработчика https://console.developers.google.com/apis/credentials , вверху страницы кликните "+ СОЗДАТЬ УЧЕТНЫЕ ДАННЫЕ" - "Идентификатор клиента OAuth" - тип приложения "Приложение для ПК".

После создания гугл выдаст client_id и client_secret - их и нужно вставить в браузер, в рассмотренную выше форму GoogleOauth.html Обратите внимание, client_id нужно вставить два раза в два одноименных поля. После вставки своих client_id client_secret а также необходимых Вам scope - производим все клики и получаем рабочие токены.

Немного о scope, которые мы видим в форме. Здесь нужно указать API-scope, необходимые для Вашего приложения. Перечень существующих scope можно посмотреть на странице https://developers.google.com/identity/protocols/oauth2/scopes , а scope необходимые в работе конкретного API - в инструкциях к этому API. Scope указываются через пробел. В Вашем проекте должны быть подключены API, соответствующие запрашиваемым scope, иначе отобразится ошибка.

access_token живет один час, потом надо брать свежий. Для этого нужно из 1С выполнить HTTP-запрос с предъявлением "вечного" refresh_token - и Вам выдадут очередной access_token: https://developers.google.com/identity/protocols/oauth2/native-app?hl=ru#offline

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. malikov_pro 697 24.08.20 04:37 Сейчас в теме
За вариант с
name="redirect_uri" value="urn:ietf:wg:oauth:2.0:oob", нашел описание в https://developers.google.com/youtube/v3/live/guides/auth/installed-apps
благодарю.

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

См. также

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция Промо

Практика программирования WEB v7.7 v8 Бесплатно (free)

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    57312    Serginio    33    

API ОФД-Я разбор документации с примерами

WEB v8 1cv8.cf Россия Бесплатно (free)

Примеры запросов 1С для получения данных с ОФД-Ярус через API.

20.04.2021    493    www76    0    

FastAPI (python) - инструмент для быстрого создания Веб сервиса (WSGI) с REST api

WEB Бесплатно (free)

Ознакомительная статья по FastAPI (python) - инструменту быстрого создания Веб сервиса (WSGI) с REST api.

19.04.2021    3227    Идальго    23    

Работа через сервис 1С-Отчетность нескольких пользователей

Регламентированная отчетность Зарплата WEB v8 v8::СПР ЗУП3.x Россия БУ ФОМС, ПФ, ФСС Бесплатно (free)

Организации, в которых количество сотрудников превышает установленное значение, обязаны отправлять отчетность по телекоммуникационным каналам связи. Это может быть Контур-Экстерн, Такском или любой другой провайдер. Все чаще пользователи 1С используют сервис 1С-отчетность. И все чаще сертификат оформляется на сотрудника отдела кадров или бухгалтерии. В случае, если нужно оформить несколько сертификатов, возникают трудности в версии ЗУП 3.1.14 и более поздних. О том, как с ними справиться, пойдет речь в данной публикации.

05.04.2021    902    keat24    1    

Online телефонный справочник из 1С: Зарплата и управление персоналом Промо

WEB Управление персоналом (HRM) Управление персоналом (HRM) v8 ЗУП3.x Россия Бесплатно (free)

В интернете представлено много реализаций online телефонных справочников организаций. Есть справочники, которые использует для хранения информации базу Active Directory (LDAP), есть справочники, которые реализованы с использованием СУБД (например, MySQL). Но я не нашел справочника, который использует информацию из базы 1С. Далее я рассмотрю данную разработку.

10.03.2017    26723    ruha    21    

Wildberries. Заполнение карточек товаров. Как получить значение справочников?

WEB Бесплатно (free)

Wildberries. Заполнение карточек товаров. Как получить значение справочников? в документации это описано очень скромно, пытаюсь рассказать на основании своего опыта.

31.03.2021    882    sergeyisa    0    

Как получить ключ поставщика Wildberries (uuID), supplierID, Идентификатор поставщика

WEB Бесплатно (free)

Как получить ключ поставщика Wildberries (uuID), supplierID, Идентификатор поставщика, для работы с карточками товара.

18.03.2021    996    sergeyisa    7    

Правила обмена больше не нужны

Внешние источники данных Обмен через XML Перенос данных из 1C8 в 1C8 Распределенная БД (УРИБ, УРБД) WEB v8 Бесплатно (free)

Есть несколько общепринятых подходов к написанию обмена между 1С-системами, каждый из которых упирается в длительное изучение технологии, мучительную отладку правил конвертации и написание большого количества сервисного кода, в котором потом тяжело разобраться. О принципах работы универсального фреймворка liteExchange, который реализует быстрые обмены между 1С и внешними системами, и берет на себя всю техническую обвязку по стандартному преобразованию данных, на INFOSTART MEETUP Saint Petersburg.Online рассказал Николай Крылов.

17.03.2021    8036    Nikola23    35    

Информер для сайта , актуальные релизы 1С + Проверка подписки ИТС. Промо

WEB Администрирование данных 1С Сервисные утилиты Бесплатно (free)

Небольшой код который встраивается на сайт и выводит информацию о последних релизах конфигураций 1С

12.09.2014    41035    Malfarion    34    

Интеграция "1С:Управление торговлей 10.3" с Yandex SpeechKit для распознавания телефонных звонков

WEB Интеграция Телефония, SIP Бесплатно (free)

Распознавание телефонных звонков позволяет контролировать работу менеджеров, организовать для них дополнительный KPI, помогает разбирать конфликты и категоризировать звонки по вхождению слов. О своем опыте интеграции «1С:Управления торговлей 10.3» и сервиса Yandex SpeechKit на INFOSTART MEETUP Saint Petersburg.Online рассказал ИТ-директор компании «Умный дом» Федор Рыжков.

12.03.2021    777    zzhiraf_    0    

Как отправить сообщение Telegram в группу?

WEB v8 Россия Бесплатно (free)

Отправка сообщения в группу Telegram.

01.03.2021    1119    kite2    2    

Альфа-Авто 5.0 и современные HTTP сервисы

WEB v8 1cv8.cf Автомобили, автосервисы УУ Бесплатно (free)

Решение, позволяющее программным продуктам, работающим на устаревших версиях платформы 1С (8.2), интегрироваться с современными HTTP сервисами. Решение, интегрированное с HTTP-сервисом программы по расчету компонентов для изготовления ЛКМ, описанное в настоящей статье, успешно работает в одном из автосервисов, работающем на устаревшей платформе и конфигурации Альфа-Авто 5.0.

01.03.2021    696    osivv    1    

Кэширование COM-соединения. Три способа Промо

Практика программирования Перенос данных из 1С7.7 в 1C8.X Внешние источники данных WEB v8 Россия Бесплатно (free)

Статья о трех способах кэширования COM-соединения в 1С:Предприятии 8.x.

11.04.2013    42540    YPermitin    41    

Доступ из базы 1С к стандартному интерфейсу Odata базы 1С, в которой заведен пользователь

WEB v8 Россия Бесплатно (free)

Есть база, с пользователем/паролем, нужно подключиться к Odata из другой базы 1С, получить элементы справочника.

24.02.2021    766    user823999    6    

Как мы на Managed Service for SQL Server в Yandex.Cloud переезжали

Администрирование СУБД Облачные сервисы, хостинг Бесплатно (free)

Рассказ про грабли при переезде на Yandex Managed Service for SQL Server и DataLens.

02.02.2021    781    dsdred    5    

CRM в облаках

Управление взаимоотношениями с клиентами (СRM) Облачные сервисы, хостинг v8 Бесплатно (free)

Организация единой CRM-системы для группы компаний требует особого подхода к построению интерфейсов, продуманной архитектуры обмена данными, оптимизации интеграционных форматов и т.д. О том, как построить CRM-систему, используя 1С только как back-end для получения данных по HTTP-протоколу, рассказал инженер-программист ООО «Протон» Сергей Плоткин.

29.01.2021    1129    Plotks2017    1    

Заготовка для загрузки файлов по ftp Промо

WEB Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

3 процедуры и 1 макет

03.06.2013    30997    anig99    6    

Бот Telegram и HTTP сервис в 1С

WEB 8.3.8 Бесплатно (free)

Настройка рабочего вебхука telegram для 1С используя IIS (Internet Information Services - встроенный в windows веб-сервер). Мой опыт.

26.01.2021    6129    solidsun    10    

Интеграция с API WB (Wildberries). Создание карточки товара (спецификации)

WEB v8 1cv8.cf ИТ-компания Россия Бесплатно (free)

Опыт интеграции с API WB (Wildberries), опыт создания карточки товара, получение токенов API WB.

18.01.2021    14296    jenyavp    45    

1С и Умный Дом. Управление голосом

WEB Интернет вещей (IIoT) 8.3.6 Бесплатно (free)

Возможно ли управление устройствами умного дома из 1С, да ещё и голосом? Можно ли без умных колонок Google Home, Alexa, Алиса и иных платформ, а также без приложений от Google, Amazon и других управлять этими устройствами? Мой ответ – ДА, можно, нужно просто иметь умное устройство, имеющее возможность работы в DIY, 1С и программу распознавания голоса и взаимодействия с 1С.

04.01.2021    2202    osivv    15    

Организация удаленного доступа к корпоративной информационной системе — это просто ! Промо

Внешние источники данных Монитор заказов WEB Монитор заказов Бесплатно (free)

Хочу поделиться своим опытом создания web морды к корпоративной информационной системе на базе 1С. Необходимо организовать сбор заказов от удаленных пользователей. - Каждый пользователь видит свой набор данных, и работает со своими документами. - Доступ по логину/паролю, работа в основном с планшетов (iPad) или с десктопа. - Сервер должен находиться за пределами организации. - Себестоимость 1 пользователя не более 10$ за месяц. - Использование в основном мобильного канала связи GPRS (~100 КБ/с).

31.08.2012    28962    avhrst    13    

HTML редактор/editor (Wysiwyg) для WebKit 1С (CMS, B2B), альтернатива TinyMCE и стандартному ФорматированныйДокумент

WEB Интеграция v8 v8::УФ 1cv8.cf Бесплатно (free)

Suneditor - отличная замена HTML редактору TinyMCE (бесплатному), в публикации с открытым кодом подключим его в 1С с WebKit, скачать HTMLeditor обработку можно бесплатно.

28.12.2020    2529    SizovE    25    

1С и Умный дом

WEB Интернет вещей (IIoT) 8.3.8 Бесплатно (free)

Возможно ли управление устройствами умного дома из 1С? Можно ли, минуя сложные настройки ZigBee, Z-Wave и иных платформ, а также без приложений от Google, Amazon и других управлять этими устройства? Мой ответ – ДА, можно, нужно просто иметь умное устройство, имеющее возможность работы в DIY, ну и, естественно, 1С.

21.12.2020    1772    osivv    8    

[TinyMCE] - редактор HTML WYSIWYG. Интеграция во все виды управляемого и обычного приложения

WEB 8.3.14 Бесплатно (free)

В статье рассмотрены вопросы использования во всех режимах работы 1С Предприятие 8.3 редактора TinyMCE в поле HTML дополнительного функционала.

14.12.2020    1016    user1206119    0    

Выгрузка HTML описаний с картинками (Base64) товаров на сайт/интернет-магазин/B2B, разберем регулярное выражение получения тега body, ПолучитьHTML, ФорматированныйДокумент

Практика программирования WEB Универсальные функции v8 v8::УФ 1cv8.cf Бесплатно (free)

Редактор HTML платформы 1С простой и очень удобный для небольших задач, однако ПолучитьHTML возвращает отдельно картинки и отдельно целиком HTML страницу со ссылкой на имена этих картинок, что неудобно для отправки в базу данных сайта/интернет-магазина/веб-приложения/B2B. Разберем на открытом коде, как решить эту проблему, напишем универсальную функцию получения значения любого тега HTML на регулярных выражениях. Бонусом - возможность редактировать теги HTML в текстовом режиме.

24.11.2020    911    SizovE    4    

Централизованное управление НСИ при внутрикорпоративном внедрении Фреш

Обмен данными 1С Облачные сервисы, хостинг Конфигурирование 1С v8 ЗКГУ3.0 Государственные, бюджетные структуры Россия Бесплатно (free)

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

19.11.2020    1287    zivan38    0    

Как сделать интеграцию (обмен) с интернет-магазином? Пошаговый план действий (Часть 1)

WEB v8 1cv8.cf УУ Бесплатно (free)

C 2011 года я занимаюсь интеграцией с интернет-магазинами и за это время, наверное, повидал все. Делал интеграцию как «культурными», так и «экзотическими» способами. Количество магазинов исчисляется сотнями. В этой серии статей я буду делиться своим опытом, а также выкладывать какие-то полезные наработки.

19.11.2020    5471    markbraer    11    

Чтение вложенных свойств Структур Структуры, Соответствий, свойства через точку, разбор JSON

Практика программирования WEB Интеграция Универсальные функции v8 Бесплатно (free)

JSON: {user.device.type} - как получить значение {type}? А если вложенность значительно глубже? Как проверить, что оно заполнено или удалить его - всё это в публикации с открытым кодом и даже без рекурсии. Бонусом разбор дерева значений - ДанныеФормыЭлементДерева, СтрокаДереваЗначений.

17.11.2020    1884    SizovE    2    

Web Dashboard (мобильная и десктопная версия): оптимальная схема организации взаимодействия с зоопарком систем

WEB v8 Бесплатно (free)

Задача: из множества систем (1С:ERP, 1C:CRM, Кронос:WMS, 1С:Розница, 1С:УПП...) оперативно и онлайн осуществлять мониторинг на телефоне/десктопе/планшете/телевизоре бизнес-аналитику в дашборде для директора. Рассмотрим в статье, как правильно интегрировать между собой все базы, какие для этого инструменты использовать.

10.11.2020    9388    SizovE    2    

Как я бесплатно пишу чат-ботов WhatsApp на 1С

WEB Бесплатно (free)

На разработку чат-бота требуется время. Как правило, время уходит на ознакомление с API, отладку, приемку. Как сэкономить и не платить за использование API на время разработки? Делюсь своим опытом.

02.11.2020    2558    andrew_shamin    10    

Отладка модуля ДиадокПро

WEB v8 1cv8.cf Бесплатно (free)

В обработке ДиадокПро все дополнительные модули встроены во внешние обработки, которые хранятся в макетах. Это усложняет процесс самостоятельной интеграции, так как теряется возможность попасть в них в режиме отладки. Но не всё так страшно, поэтому ниже инструкция)

30.10.2020    2591    Максим-777    14    

JSON примеры меню B2B web-приложения "Личный кабинет" на движке EDIbot для телефона/десктопа

WEB v8 Бесплатно (free)

Рассмотрим на примерах работу движка EDIbot при организации меню B2B "Личного кабинета" (мобильная версия, версия десктоп) грузовладельца WMS-системы.

29.10.2020    1094    SizovE    0    

Обмен с сайтом посредством Post-запроса, json

WEB v8 1cv8.cf Бесплатно (free)

Задача - передавать на сайт объекты с наименованием и уникальным идентификатором (УИ), которые изменяются в 1С. Также нужно сохранять историю отправленных пакетов.

29.10.2020    4655    John_d    26    

Организация HTTP публикации каталога товаров используя PostgREST

WEB v8 1cv8.cf Бесплатно (free)

В статье опишу порядок установки настройки и использования PostgREST на примере организации каталога товаров.

05.10.2020    1279    malikov_pro    2    

Использование HTTP REST обертки xmysql для работы с MySQL на примере OpenCart

WEB Бесплатно (free)

В статье опишу вариант работы с MySQL базой используя HTTP.

28.09.2020    2086    malikov_pro    2    

Интеграционная прослойка(middleware) на Golang. Часть 5 - Обмен с 1С через HTTP-сервисы платформы

WEB v8 Бесплатно (free)

В этой статье научим прослойку отправлять данные в 1С, для этого используем HTTP-сервисы платформы. Обменяемся данными с новым справочником Клиенты. Но главное создадим HTTP-сервис для получения сообщений из очереди RabbitMQ.

28.09.2020    2066    dmitry-irk38    4    

Отладка http сервиса

WEB v8 Бесплатно (free)

При разработке http сервиса возникает ситуация, а как протестировать http сервис? Создали мы сервис, настроили шаблоны, передали, если нужно параметры, открываем браузер заполняем строку подключения и БАХ, ошибка. Что делать?

23.09.2020    3534    hpi    10    

Учимся создавать http сервисы (часть вторая). Передача параметра в http сервис

WEB v8 1cv8.cf Бесплатно (free)

Пошаговое руководство по созданию http-сервиса (часть вторая). Передача параметра в http сервис.

22.09.2020    6708    hpi    7    

Организация данных и вариант обработки для организации обмена с сайтом

WEB v8 1cv8.cf Бесплатно (free)

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

22.09.2020    1646    malikov_pro    4    

Формирование списка документов и скачивание печатной формы документа через веб-сайт с использованием HTTP-сервиса, плюс особенности авторизации

Практика программирования Обмен данными 1С WEB v8 1cv8.cf Бесплатно (free)

В статье показан пример, как реализовать формирование списка документов клиента/пользователя по коду, а затем скачать его (документа) печатную форму по ссылке

18.09.2020    1274    R_o_n_n_y    3    

Формирование HTTP запроса формата multipart/form-data с двоичными данными, используя ПотокВПамяти

WEB v8 1cv8.cf Бесплатно (free)

В статье опишу вариант формирования запроса

11.09.2020    4003    malikov_pro    11    

Дневник боли и страданий. Как я переходил от The Bat! к MS Outlook

WEB Бесплатно (free)

Мой опыт перехода от The Bat! к MS Outlook. Сравнение двух программ, киллер-фичи, лайфхаки и рецепты из интернета. Все в одном месте и проверено автором на актуальных релизах сентября 2020 года.

02.09.2020    2241    gubanoff    15    

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

WEB Бесплатно (free)

В статье опишу работу скрипта для формирования документа с публикацией по HTTP.

25.08.2020    2077    malikov_pro    2    

Ферма приложений на Kubernetes

WEB v8 Бесплатно (free)

При эксплуатации большого количества информационных систем 1С, предоставляющих интернет-сервисы, возникают проблемы, связанные с зависимостью от производительности и стабильности веб-сервера. Как объединить отдельно стоящие веб-сервера с помощью платформы Kubernetes для централизованного мониторинга всех опубликованных интернет-сервисов на конференции Infostart Event 2019 Inception рассказал программист компании BIA Technologies Владимир Кирбаба.

24.08.2020    1968    ComboBoy    1    

Использование шаблонного процессора для формирования HTML страниц

WEB v8 1cv8.cf Бесплатно (free)

В статье опишу использование шаблонного процессора Handlebars запущенного на Node.js

24.08.2020    1818    malikov_pro    26    

Использование скриптов при формировании запросов используя Postman

WEB Бесплатно (free)

В статье опишу применение JS скриптов а postman при работе с API.

22.08.2020    3543    malikov_pro    8