Как работать с OAuth2 на примере Google - vorst.ru

OAuth2 & Google


подключение к Google

Вашим клиентам необходим доступ к таблицам Google из приложения. Что-то они хотят там хранить. Заказ на разработку получен. С чего начать?

OAuth2 & Google

подключение к Google

Если у вас есть аккаунт в Google, то вы наверняка пользовались документами. Например, электронными таблицами.

Доступ к таблицам разрешен только вам и тем, кому вы предоставите такое право. Причем доступ возможен не только из Google.

Можно просматривать список таблиц и редактировать выбранную таблицу оставаясь в рамках своего приложения. Примерно так - http://sample.vorst.ru/googl

Для этого разработано Google Sheets API, доступное в двух вариантах - клиентская библиотека и REST API.


Оба варианта выполняют одну и туже работу. Во многом выбор зависит от решаемой задачи.

В простых задачах, например - получить список таблиц, которые принадлежат пользователю, проще использовать REST API.

Если же необходимо активно работать с таблицей - читать построчно, проводить вычисления, сохранять результаты, то, наверное, лучше использовать библиотеку.

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

Сделать это не сложно используя подробную, пошаговую инструкцию - Setting up OAuth 2.0.

При создании проекта автоматически будет создана пара значений, которая понадобится при прохождении авторизации - Client ID и Client secret.

Еще один параметр - Authorized redirect URIs, вы должны ввести самостоятельно. Это адреса в вашем приложении, куда будут возвращаться результаты запросов на авторизацию. Адрес может быть один или несколько. Во-первых это удобно при отладке - можно указать локальный адрес. Во-вторых - процесс авторизации состоит из двух этапов и для каждого может быть задан свой адрес.

Итак, для авторизации необходимо:

  1. иметь аккаунт на сайте Google;
  2. создать проект с помощью консоли разработчика;
  3. сохранить Cliend ID и Client secret;
  4. ввести Authorized redirect URIs для обработки значений, полученных в процессе авторизации.

Как проходит авторизация?

Сначала отправляется запрос Google для получения кода авторизации. В качастве параметров отправляются Client ID и Authorized redirect URI. Результат запроса - Authorization code, Google отправляет вашему приложению по адресу Authorized redirect URI.

Получив Authorization code приложение отправляет еще один запрос - на получение токена. При этом, к уже упомянутым параметрам, добавляются еще Client secret и только что полученный Authorization code.

В результате получаем Access token по адресу, указанному в Authorized redirect URIs. Если все сделано верно, то можно отправлять Google любой запрос, передавая Access token в качестве параметра.

Например, запрос:

https://spreadsheets.google.com/feeds/spreadsheets/private/full

вернет список ваших таблиц в Google в формате xml.

Текст программы на github.

Заключение

Протокол OAuth2 позволяет авторизоваться на удаленном сервисе. Сервис должен поддерживать данный протокол. После авторизации возможно получение необходимых данных.

Оставьте комментарий

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