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

Пример работы с amoCRM

Как получить данные из amoCRM

Заказчик попросил вывести данные о сделках в таблицу в формате CSV. Данные должны быть максимально полными.

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

Ну и прочее - кто, когда, с кем, контакты клиента и, наконец, все комментарии к сделке.


Как работает аутентификация OAuth2

OAuth2 аутентификация на примере Google

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

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

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



Поиск



Как работает аутентификация OAuth2

OAuth2 аутентификация на примере 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 позволяет авторизоваться на удаленном сервисе. Сервис должен поддерживать данный протокол. После авторизации возможно получение необходимых данных.

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

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