Первый опыт работы с Google API (на примере ContactsAPI) и OAuth3.0 на чистом HTTP / Хабр
В ходе написания проекта мне понадобилось добавлять записи в книгу контактов Google. Вроде бы все просто, есть API, бери и пользуйся, но взять и использовать его сразу не получилось. Много документации, перекрестных ссылок (само собой не на русском языке). Мне понадобилось много времени чтобы во всем этом разобраться. Кроме того, мне нужны были пример использования в чистом протоколе HTTP без кода на каком-либо другом языке. После того, как все получилось я решил написать сюда чтобы сэкономить кому-нибудь много времени, разложив все шаги по полочкам. Для многих ничего нового здесь не будет, тем более что эта статья — большей частью перевод и упрощение гугловской документации.
Первая часть. Создание приложения и настройка
Итак, конкретно для моих целей нужно было использовать Contacts API. Заходим в свой google аккаунт в котором хотим включить API. Переходим по ссылке
console.developers.google.com/iam-admin/projects и нажимаем «Создать проект»:
Дальше делаем все то, что предлагает Google, никуда не сворачивая. Задаем имя проекту и т.д.
После того, как создание проекта будет завершено, вы сможете скачать файл со всеми данными проекта (ID, секрет и т.п.).
Также необходимо включить API. Для этого переходим на console.developers.google.com/apis/, выбираем из списка необходимый API и в открывшейся вкладке нажимаем «Включить API». Все, на этом первый шаг закончен.
Вторая часть. Получение токенов
Для обращения к API необходимо получить токены доступа по стандарту OAuth 2.0. Это, пожалуй, было для меня сложнее всего. Разобраться как, куда и какие запросы посылать, в каком порядке — не так уж и просто.
Для получения токенов, которые я бы смог в дальнейшем использовать в своей программе, я использовал расширение для Firefox, которое называется HTTPRequester.
1. Получить code
На этом шаге производится запрос пользователю на получение доступа. Пример запроса (символом * просто заменены некоторые данные моего приложения):
https://accounts.google.com/o/oauth3/v2/auth?scope=https://www.google.com/m8/feeds&access_type=offline&include_granted_scopes=true&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&client_id=921647******-l5jcha3bt7r6q******bhtsgk*****um6.apps.googleusercontent.com
Подробнее о некоторых параметрах:
scope — сервис, к которому мы получаем доступ. Для контактов это www.google.com/m8/feeds. Список адресов разных сервисов находится по ссылке developers.google.com/identity/protocols/googlescopes;
access_type — тип доступа. Если вам нужно будет обновлять токены без участия пользователя, обязательно используйте значение offline. Также возможно значение online, но при его выборе необходимо будет каждый раз запрашивать разрешение у пользователя в браузере;
redirect_uri и client_id — данные, которые указаны в файле проекта, который был скачан на первом этапе;
При выполнении этого GET запроса появится страница разрешений:
Если нажать «Разрешить», вы получите code, выглядит примерно так (* — замена моих данных):
4/iLcXnhpU8NvMHT5aTy8JjXhcROERzkvKq********
2. Получить токены
Для получения токенов авторизованного доступа необходимо послать POST запрос на адрес
www.googleapis.com/oauth3/v4/token (Обязательно, content-type запроса должен быть application/x-www-form-urlencoded).
В теле запроса должны быть следующие параметры:
code=4/iLcXnhpU8NvMHT5aTy8JjXhcROERzkvKq********&client_id=921647******-l5jcha3bt7r6q******bhtsgk*****um6.apps.googleusercontent.com&client_secret=hi1W9GAKGer************&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code
Где
code — данные, полученные на предыдущем шаге;
grant_type — обязательный параметр, который должен быть равен «authorization_code» (не какой-либо код авторизации, а именно так, буквами — authorization_code).
Ответ вы получите в формате JSON, в котором будут указаны токен досупа и токен обновления токена доступа.
Пример ответа:
3. Обновить токен доступа
Токен доступа (access_token) действует ограниченное время, указанное в параметре expires_in.
Для этого необходимо сделать POST запрос на www.googleapis.com/oauth3/v4/token (Обязательно, content-type запроса должен быть application/x-www-form-urlencoded).
Тело запроса:
client_id=921647******-l5jcha3bt7r6q******bhtsgk*****um6.apps.googleusercontent.com&client_secret=hi1W9GAKGer************&refresh_token=1/rCIfgox0M7ul5uKHasqk****************&grant_type=refresh_token
В ответе, опять же в формате JSON вы получите новый токен доступа.
Все, полученные данные можно использовать для выполнения ваших задач. Все, что было написано выше — авторизация приложения по протоколу OAuth 2.0. Далее, для выполнения авторизованных запросов необходимо передать в параметрах токен доступа (http://google………………com/?access_token=ya.23*****************).
Работа с Contacts API
Для моей задачи мне нужно было всего три действия: Добавить контакт, получить список контактов и удалить контакт.
1. Получение списка контактов
Для получения списка контактов достаточно отправить GET запрос с параметрами. Пример запроса:
www.google.com/m8/feeds/contacts/gmm********@gmail.com/full?access_token=ya29.GlwbBFzl0uXJG6yt_Wdgr6vI4KJ88Djw85H******************************************************.
В ответе вы можете распарсить данные и получить число контактов, их описание и их ID.
gmm**********@gmail.com — адрес моей учетной записи.
2. Добавление контактов
Для добавления контактов в адресную книгу надо отправить POST запрос с токеном доступа в параметрах. (Обязательно, content-type запроса должен быть application/atom+xml). Пример запроса:
www.google.com/m8/feeds/contacts/gmm*********@gmail.com/full?access_token=ya29.GlwYBLz6AgOE9Xs****************************************************************************.
Тело запроса (взято из google документации):
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005"> <atom:category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/contact/2008#contact"/> <gd:name> <gd:givenName>Elizabeth</gd:givenName> <gd:familyName>Bennet</gd:familyName> <gd:fullName>Elizabeth Bennet</gd:fullName> </gd:name> <atom:content type="text">Notes</atom:content> <gd:email rel="http://schemas.google.com/g/2005#work" primary="true" address="[email protected]" displayName="E. Bennet"/> <gd:email rel="http://schemas.google.com/g/2005#home" address="[email protected]"/> <gd:phoneNumber rel="http://schemas.google.com/g/2005#work" primary="true"> (206)555-1212 </gd:phoneNumber> <gd:phoneNumber rel="http://schemas.google.com/g/2005#home"> (206)555-1213 </gd:phoneNumber> <gd:im address="[email protected]" protocol="http://schemas.
google.com/g/2005#GOOGLE_TALK" primary="true" rel="http://schemas.google.com/g/2005#home"/> <gd:structuredPostalAddress rel="http://schemas.google.com/g/2005#work" primary="true"> <gd:city>Mountain View</gd:city> <gd:street>1600 Amphitheatre Pkwy</gd:street> <gd:region>CA</gd:region> <gd:postcode>94043</gd:postcode> <gd:country>United States</gd:country> <gd:formattedAddress> 1600 Amphitheatre Pkwy Mountain View </gd:formattedAddress> </gd:structuredPostalAddress> </atom:entry>
Всю структуру оставляем такую же, меняем только персональные данные (имя, номер и т.д.).
3. Удаление контакта
Для удаления контакта надо узнать его ID (его можно получить или в ответе при добавлении контакта или при получении всего списка контактов) и отправить DELETE запрос.
ВАЖНО! В header запроса обязательно надо добавить параметр If-Match и задать его значение как *. Без этого удалить контакт не получится.
Пример запроса:
www.google.com/m8/feeds/contacts/gmm***@gmail.com/base/5a5415d78e677387?access_token=ya29.GlwYBLz6AgOE9Xsnt8Z1raYaa3fB*********************
5a5415d78e677387 — ID контакта.
→ Using OAuth 2.0 for Web Server Applications.
→ Google Contacts API.
На этом все, я буду очень рад, если кому-нибудь пригодится статья. Лично мне, человеку, который впервые столкнулся с google API, было довольно трудно со всем этим разобраться.
Подключите свои контакты Google к интеграции с Google Таблицами за 2 минуты
Как соединить контакты Google + Google Таблицы
Zapier позволяет автоматически отправлять информацию между контактами Google и Google Таблицами — код не требуется.
Когда это произойдет…
сделайте это автоматически!
- Навсегда бесплатно для основных функций
- 14-дневная пробная версия для премиум-функций и приложений
Наш самый популярный Zap!
Создание Google Contacts из новых строк Google Sheets
Zapier
Try It
Google Sheets, Google Contacts
Google Sheets + Google Contacts
.Шаг 1: Новая строка электронной таблицы
Затем сделайте это
Шаг 2: Создайте контакт
Add updated Google Контакты для электронных таблиц Google Sheets
Zapier
Попробуйте
Google Contacts, Google Sheets
Google Contacts + Google Sheets
ПодробнееКогда это произойдет
Шаг 1: Новый или обновленная контакт
Затем сделайте это
Шаг 2: Создайте рядную таблицу
Добавить обновленные контакты Google в электронные таблицы Google Sheets
Zapier
Добавить обновленные контакты Google в электронные таблицы Google Sheets
Попробуйте
Google Contacts, Google Sheets
Google Contacts + Google Sheets
Добавить обновленные серисты Google.
См. подробности Zap Попробуйте
Создайте контакты Google из новых строк Google Sheets
Zapier
Create Google Contacts from new Google Sheets rows
Try it
Google Sheets, Google Contacts
Google Sheets + Google Contacts
Google Sheets, Google Contacts
Google Sheets + Google Contacts
ПодробнееКогда это произойдет
Шаг 1: Новая или обновленная строка электронной таблицы
Затем сделайте это
Шаг 2: Создайте контакт
См. подробности Zap Попробуйте
Добавьте обновленные строки таблицы Google Sheets
3 by 9000new as03 to Google Contacts Zapier Zapier
Добавить обновленные строки электронной таблицы Google Sheets в Google Contacts как новые контакты
Попробуйте
Google Sheets, Google Contacts
Google Sheets + Google Contacts
Создание контактов с Google для новых или обновленных строк в листе Google (командный диск)
Zapier
Try
, Google Contacts
Google Sheets + Google Contacts
Подробнее В этом случае
Шаг 1: Новая или обновленная строка таблицы (общий диск)
Затем сделайте это
Шаг 2: Создайте контакт
См.
подробности Zap Попробуйте
Создайте контакты Google для новых или обновленных строк в Google Sheet (на общем диске)
0 Zapier Создать Google контакты для новых или обновленных строк в Google Sheet (общий диск)
Попробуйте
Google Sheets, Google Contacts
Google Sheets + Google Contacts
Создание контактов с Google для новых строк Google Sheet Rows (Team Drive)
Zapier
Попробуйте
Google Sheets, Google Contact Details
Когда это произойдет
Шаг 1: Новая строка электронной таблицы (общий диск)
Затем выполните следующее
Шаг 2: Создайте контакт
См. подробности Zap0005
Создание Google Contacts для новых строк Google Sheet Rows (Team Drive)
Zapier
Создание Google Contacts для новых строк Google Sheet Rows (Team Drive)
13 Таблицы, Google Контакты
Google Таблицы + Google Контакты
Шаг 1.
Подтвердите подлинность контактов Google и Google Таблиц.
30 секунд
Шаг 2: Выберите одно из приложений в качестве триггера, который запустит вашу автоматизацию.
15 секунд
Шаг 3: Выберите результирующее действие из другого приложения.
15 секунд
Шаг 4: Выберите данные, которые вы хотите отправить из одного приложения в другое.
2 минуты
Готово! Больше времени для работы над другими делами.
Подключить приложения
Подключить Google Контакты + Google Таблицы
О Google Контакты
Google Контакты, адресная книга, встроенная в Gmail, позволяет отслеживать все ваши контакты, видеть, когда вы в последний раз взаимодействовали с ними, и многое другое .
Узнать больше- Управление контактами
- Google
Microsoft Office 365
Электронная почта, Microsoft Действовать! 365
Управление контактами Zoho Mail
Электронная почта, Zoho О Google Sheets
Создавайте, редактируйте и делитесь электронными таблицами, где бы вы ни находились, с помощью Google Sheets и автоматически получайте ценные сведения из ваших данных.
Подробнее- Google
- Электронные таблицы
Zoho Creator
App Builder, Zoho Smartsheet
Электронные таблицы Quip
Документы Вы не можете добавить больше часов к суткам. Zapier — следующая лучшая вещь.
ИЛИ
*Рабочий адрес электронной почтыТребуется
*ИмяТребуется
*ФамилияТребуется
Пароль
Регистрируясь, вы соглашаетесь с условиями обслуживания и политикой конфиденциальности Zapier.
- Цены
- Справка
- Платформа для разработчиков
- Пресса
- Вакансии
- Zapier для компаний
- Трансфер
Следуйте США
Zapier
© 2023 Zapier Inc.
- Legal
Легко обмениваться профильными ссылками через контакты
. Начало начало
. эта функция доступна только для контактов, у которых есть электронная почта, связанная с их профилем Workspace, полезно, чтобы пользовательские данные были полностью заполнены во всех приложениях Google Workspace.
Администраторы рабочей области могут заполнять эти данные в нескольких местах: - Раздел «Пользователи» консоли администратора
- Google Cloud Directory Sync
- Admin SDK
Посетите Справочный центр, чтобы узнать больше о добавлении информации в профиль пользователя в Каталоге. Конечные пользователи: - После этого откройте «Копировать ссылку на профиль» одним из двух способов:
- В подробном представлении контакта выберите «меню с тремя точками» и нажмите « Скопировать ссылку на профиль».
- В представлении списка контактов (например, contact.google.com) выберите «меню с тремя точками» для строки контакта и нажмите кнопку «Копировать ссылку на профиль».
- Вы также можете ввести «contacts.google.com/emailaddress» в адресную строку веб-браузера, чтобы найти человека в вашей организации. Форматы электронной почты включают в себя:
[email protected], jane.smith@domain и jane.
smith.
Скорость развертывания
- Домены быстрого выпуска и запланированного выпуска: расширенное развертывание (возможно, более 15 дней для демонстрации функций), начиная с 30 июня 2022 г., с предполагаемым завершением к 18 июля 2022 г. Из-за поэтапного характера В этом выпуске конечные пользователи смогут копировать ссылки на профили из адресной строки своего браузера, прежде чем они получат доступ к кнопке «Копировать ссылку на профиль».
Доступно
- Доступно для всех пользователей Google Workspace, а также для пользователей устаревших версий G Suite Basic и Business
- Недоступно для пользователей с личными аккаунтами Google
Ресурсы
- Справка: добавление информации в Google Workspace
- профиль пользователя в каталоге
- Справка администратора Google Workspace: о Google Cloud Directory Sync
- Справка администратора Google Workspace: API каталога
Краткий обзор
В 2021 году мы представили новый интерфейс Google Контакты (contacts.
google.com), который предоставляет подробную информацию о ваших коллегах и заинтересованных лицах. Начиная с сегодняшнего дня каждый контакт с электронной почтой Workspace имеет новую ссылку на профиль, которую легко копировать, делиться и отправлять внутри организации. Эта новая ссылка на профиль помогает всем в вашей организации оставаться на связи и оставаться на связи.
Начало работы
- Администраторы:
- Поскольку эта функция доступна только для контактов, у которых есть электронная почта, связанная с их профилем Workspace, полезно, чтобы пользовательские данные были полностью заполнены во всех приложениях Google Workspace. Администраторы рабочей области могут вводить эти данные в нескольких местах:
- В разделе «Пользователи» консоли администратора
- Google Cloud Directory Sync
- Admin SDK
- Посетите Справочный центр, чтобы узнать больше о добавлении информации в Каталог пользователя.
профиль.
- Конечные пользователи:
- После этого откройте «Копировать ссылку на профиль» одним из двух способов:
- кнопка «ссылка на профиль».
- В представлении списка контактов (например, contact.google.com) выберите «меню с тремя точками» для строки контакта и нажмите кнопку «Копировать ссылку на профиль».
- Вы также можете ввести «contacts.google.com/emailaddress» в адресную строку веб-браузера, чтобы найти человека в вашей организации. Форматы электронной почты включают в себя:
[email protected], jane.smith@domain и jane.smith.
Скорость развертывания
- Домены быстрого выпуска и запланированного выпуска: расширенное развертывание (возможно, более 15 дней для демонстрации функций), начиная с 30 июня 2022 г., с ожидаемым завершением к 18 июля 2022 г. Из-за поэтапного характера В этом выпуске конечные пользователи смогут копировать ссылки на профили из адресной строки своего браузера, прежде чем они получат доступ к кнопке «Копировать ссылку на профиль».

Создание контактов с Google для новых или обновленных строк в листе Google (командный диск)
Zapier
Try
В этом случае
Шаг 1: Новая или обновленная строка таблицы (общий диск)
Затем сделайте это
Шаг 2: Создайте контакт
, Google Contacts
Google Sheets + Google Contacts
Подробнее См. подробности Zap Попробуйте
Создайте контакты Google для новых или обновленных строк в Google Sheet (на общем диске)
0 Zapier Создать Google контакты для новых или обновленных строк в Google Sheet (общий диск)
Попробуйте
Google Sheets, Google Contacts
Google Sheets + Google Contacts
Создание контактов с Google для новых строк Google Sheet Rows (Team Drive)
Zapier
Попробуйте
Google Sheets, Google Contact Details
Когда это произойдет
Шаг 1: Новая строка электронной таблицы (общий диск)
Затем выполните следующее
Шаг 2: Создайте контакт
См. подробности Zap0005
Создание Google Contacts для новых строк Google Sheet Rows (Team Drive)
Zapier
Создание Google Contacts для новых строк Google Sheet Rows (Team Drive)
13 Таблицы, Google Контакты
Google Таблицы + Google Контакты
Шаг 1. Подтвердите подлинность контактов Google и Google Таблиц.
30 секунд
Шаг 2: Выберите одно из приложений в качестве триггера, который запустит вашу автоматизацию.
15 секунд
Шаг 3: Выберите результирующее действие из другого приложения.
15 секунд
Шаг 4: Выберите данные, которые вы хотите отправить из одного приложения в другое.
2 минуты
Готово! Больше времени для работы над другими делами.

- В подробном представлении контакта выберите «меню с тремя точками» и нажмите « Скопировать ссылку на профиль».
- В представлении списка контактов (например, contact.google.com) выберите «меню с тремя точками» для строки контакта и нажмите кнопку «Копировать ссылку на профиль».


- Поскольку эта функция доступна только для контактов, у которых есть электронная почта, связанная с их профилем Workspace, полезно, чтобы пользовательские данные были полностью заполнены во всех приложениях Google Workspace. Администраторы рабочей области могут вводить эти данные в нескольких местах:
- В разделе «Пользователи» консоли администратора
- Google Cloud Directory Sync
- Admin SDK
- Посетите Справочный центр, чтобы узнать больше о добавлении информации в Каталог пользователя.
профиль.
- После этого откройте «Копировать ссылку на профиль» одним из двух способов:
- кнопка «ссылка на профиль».
- В представлении списка контактов (например, contact.google.com) выберите «меню с тремя точками» для строки контакта и нажмите кнопку «Копировать ссылку на профиль».
- Вы также можете ввести «contacts.google.com/emailaddress» в адресную строку веб-браузера, чтобы найти человека в вашей организации. Форматы электронной почты включают в себя: [email protected], jane.smith@domain и jane.smith.

Ваш комментарий будет первым