SlideShare a Scribd company logo
1 of 38
Download to read offline
AdWords API Workshops – All rights reserved
OAuth 2.0
+Paul Matthews, Google, Inc.

AdWords API Workshops – All rights reserved
План
1. Что такое OAuth 2.0?

1
2

2. Подготовка
3. Получение доступа

3

4. Подробнее о процессе
5. Рекомендации

AdWords API Workshops – All rights reserved

4
5
Что такое OAuth 2.0?

AdWords API Workshops – All rights reserved
Что такое OAuth 2.0?
● Метод авторизации для AdWords API
● Простой
● Безопасный
● Стандартный

AdWords API Workshops – All rights reserved
Безопасность OAuth2
● Нет Логинов и Паролей
● Только токены (строки)

● Управление доступом
● Ограничение области доступа
● Простота отзыва

AdWords API Workshops – All rights reserved
OAuth2 -- это просто!

Получение доступа
Подтвержение пользователя

Работа с AdWords API

AdWords API Workshops – All rights reserved
Стандарт OAuth2
● Уже видели такой запрос?
● Подтвержение пользователя
●

Accept

●

Cancel

AdWords API Workshops – All rights reserved
Процесс OAuth2
Interact with the AdWords API

Grant Access
1) Build URL

3) Exchange Code

Your Application

2) Accept Consent
The MCC User
OAuth2 Servers
The AdWords API
Google Servers
AdWords API Workshops – All rights reserved

4) Make Request

5) Refresh Access
Токены OAuth2.0
● access_token

● refresh_token

● Для выполнения запросов

● Для генерации access_token

● Действителен час

● Без срока действия
● Для хранения

AdWords API Workshops – All rights reserved
Токены OAuth2.0
● access_token

● refresh_token

● Для выполнения запросов

● Для генерации access_token

● Действителен час

● Без срока действия
● Для хранения

AdWords API Workshops – All rights reserved
Токены OAuth2.0
● access_token

● refresh_token

● Для выполнения запросов

● Для генерации access_token

● Действителен час

● Без срока действия
● Для хранения

AdWords API Workshops – All rights reserved
Подготовка

AdWords API Workshops – All rights reserved
Зарегистрируйте приложение
http://code.google.com/apis/console
● Необходим идентификатор приложения
● client_id
● client_secret

AdWords API Workshops – All rights reserved
Создайте новый проект Google API Console

AdWords API Workshops – All rights reserved
Создайте идентификатор OAuth 2.0

AdWords API Workshops – All rights reserved
Выберите тип приложения

AdWords API Workshops – All rights reserved
“Web server” или “installed application”?
Installed application если нужен только один набор
токенов для авторизации (используется МСС)
Web server application если необходимо использовать
разные токены для каждого аккаунта

AdWords API Workshops – All rights reserved
Готово!

AdWords API Workshops – All rights reserved
Получения доступа
access_token & refresh_token

AdWords API Workshops – All rights reserved
Зачем нужен Access Token?

Access & Refresh Tokens
Запрос разрешения

AdWords API Workshops – All rights reserved
Использование библиотек
● С библиотеками
● Или без?

AdWords API Workshops – All rights reserved
Библиотеки упрощают задачу
● Подробности зависят от конкретной библиотеки
● Например:
● setup_oauth2
● Авторизация
● Обновление конфигурации

AdWords API Workshops – All rights reserved
Подробнее о процессе

AdWords API Workshops – All rights reserved
Как получить Access Token вручную
1. Генерация URL
2. Получение согласия
3. Ввод кода авторизации
4. Обмен кода на токеты
5. Хранение токенов
AdWords API Workshops – All rights reserved
1. Генерация URL
https://accounts.google.com/o/oauth2/auth?
access_type=offline&
scope=https://adwords.google.com/api/adwords&
redirect_uri=urn:ietf:wg:oauth:2.0:oob&
response_type=code&
client_id=xxxxxxx.apps.googleusercontent.com

AdWords API Workshops – All rights reserved
2. Получение согласия
● Направление пользователя
● Подтверждение

AdWords API Workshops – All rights reserved
3. Получение кода авторизации

> Enter authorization code here:
4/v6xr77ewYqhvHSyW6UJ1w7jKwAzu

AdWords API Workshops – All rights reserved
4. Обмен кода на токен
HTML

POST /o/oauth2/token HTTP/1.1
Host: accounts.google.com
Content-Type: application/x-www-form-urlencoded

code=4/v6xr77ewYqhvHSyW6UJ1w7jKwAzu&
client_id=xxxxxxx.apps.googleusercontent.com&
client_secret={client_secret}&
redirect_uri=&
grant_type=authorization_code

AdWords API Workshops – All rights reserved
5. Хранение токенов
{
"access_token" : "yaxx.xxxxxxxxxxxx",
"token_type" : "Bearer",
"expires_in" : 3600,
"refresh_token" : "1/xxxxxxxxxxxxxxxxxxxg"
}

AdWords API Workshops – All rights reserved
Offline или Online?
Offline access -- когда есть фоновые задачи,
выполняемые независимо от пользовател
Online access -- когда пользователь все время
присутствует (активно работает с приложением)

AdWords API Workshops – All rights reserved
Рекомендации

AdWords API Workshops – All rights reserved
Рекомендации
● Используйте offline access type для получения refresh_token
● Храните refresh_token чтобы обновлять access_token
● Используйте структуру MCC и авторизацию на уровне MCC
● Храните так же acess_token и timestamp -- меньше запросов
● Используйте один набор для авторизации между всеми потоками

AdWords API Workshops – All rights reserved
Возможные ошибки
● AuthenticationError.OAUTH_TOKEN_INVALID
○ Причина: срок действия Access Token истек
○ Решение: обновите токен с помощью Refresh token

● AuthenticationError.INVALID_GRANT_ERROR
○ Причина: пользователь отозвал разрешение
○ Решение: повторите авторизацию и получите новое

AdWords API Workshops – All rights reserved
Полезные ресурсы

AdWords API Workshops – All rights reserved
https://developers.google.com/accounts/docs/OAuth2
https://developers.google.com/accounts/docs/OAuth2WebServer
https://developers.google.com/accounts/docs/OAuth2InstalledApp
https://developers.google.com/adwords/api/docs/authentication#oauth
https://code.google.com/apis/console
Вопросы?

AdWords API Workshops – All rights reserved
AdWords API Workshops – All rights reserved

More Related Content

Similar to OAuth 2.0 refresher (russian)

Зачем интернет маркетологу понимать что такое API. Разбираем устройство API G...
Зачем интернет маркетологу понимать что такое API. Разбираем устройство API G...Зачем интернет маркетологу понимать что такое API. Разбираем устройство API G...
Зачем интернет маркетологу понимать что такое API. Разбираем устройство API G...Алексей Селезнёв
 
Воркшоп: Анализ показателя качества ключевых слов в Google Ads API с помощью ...
Воркшоп: Анализ показателя качества ключевых слов в Google Ads API с помощью ...Воркшоп: Анализ показателя качества ключевых слов в Google Ads API с помощью ...
Воркшоп: Анализ показателя качества ключевых слов в Google Ads API с помощью ...Алексей Селезнёв
 
15 основных настроек Google Analytics, часть 3
15 основных настроек Google Analytics, часть 315 основных настроек Google Analytics, часть 3
15 основных настроек Google Analytics, часть 3Tanya Mikhalchenko
 
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»Yulia Tsisyk
 
Александр Кузьмин: «Веб-аналитика для b2b»
Александр Кузьмин: «Веб-аналитика для b2b»Александр Кузьмин: «Веб-аналитика для b2b»
Александр Кузьмин: «Веб-аналитика для b2b»Комплето
 
Автоматическое тестирование Web api
Автоматическое тестирование Web apiАвтоматическое тестирование Web api
Автоматическое тестирование Web apiIgor Lyubin
 
15 - Web-технологии. Сессии и авторизация
15 - Web-технологии. Сессии и авторизация15 - Web-технологии. Сессии и авторизация
15 - Web-технологии. Сессии и авторизацияRoman Brovko
 
Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Fwdays
 
Конкурс для разработчиков от Evernote
Конкурс для разработчиков от EvernoteКонкурс для разработчиков от Evernote
Конкурс для разработчиков от EvernoteEvernote
 
ITmozg, Даниил Павлючков
ITmozg, Даниил ПавлючковITmozg, Даниил Павлючков
ITmozg, Даниил ПавлючковEYevseyeva
 
WebAuthn в реальной жизни, Анатолий Остапенко
WebAuthn в реальной жизни, Анатолий ОстапенкоWebAuthn в реальной жизни, Анатолий Остапенко
WebAuthn в реальной жизни, Анатолий ОстапенкоMail.ru Group
 
Microsoft ALM вопросы лицензирования
Microsoft ALM вопросы лицензированияMicrosoft ALM вопросы лицензирования
Microsoft ALM вопросы лицензированияAndrew Fadeev
 
QaApi: взгляд на тестирование с другой стороны баррикад
QaApi: взгляд на тестирование с другой стороны баррикадQaApi: взгляд на тестирование с другой стороны баррикад
QaApi: взгляд на тестирование с другой стороны баррикадDmitry Maruschenko
 
Stas Sultanov "REST again? Oh, come on!"
Stas Sultanov "REST again? Oh, come on!"Stas Sultanov "REST again? Oh, come on!"
Stas Sultanov "REST again? Oh, come on!"Fwdays
 
«Идентификация, аутентификация, авторизация – встроенные функции приложений и...
«Идентификация, аутентификация, авторизация – встроенные функции приложений и...«Идентификация, аутентификация, авторизация – встроенные функции приложений и...
«Идентификация, аутентификация, авторизация – встроенные функции приложений и...Mail.ru Group
 
ERP Глазами Злоумышленника
ERP Глазами ЗлоумышленникаERP Глазами Злоумышленника
ERP Глазами ЗлоумышленникаPositive Hack Days
 

Similar to OAuth 2.0 refresher (russian) (20)

Зачем интернет маркетологу понимать что такое API. Разбираем устройство API G...
Зачем интернет маркетологу понимать что такое API. Разбираем устройство API G...Зачем интернет маркетологу понимать что такое API. Разбираем устройство API G...
Зачем интернет маркетологу понимать что такое API. Разбираем устройство API G...
 
Воркшоп: Анализ показателя качества ключевых слов в Google Ads API с помощью ...
Воркшоп: Анализ показателя качества ключевых слов в Google Ads API с помощью ...Воркшоп: Анализ показателя качества ключевых слов в Google Ads API с помощью ...
Воркшоп: Анализ показателя качества ключевых слов в Google Ads API с помощью ...
 
15 основных настроек Google Analytics, часть 3
15 основных настроек Google Analytics, часть 315 основных настроек Google Analytics, часть 3
15 основных настроек Google Analytics, часть 3
 
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»
 
Александр Кузьмин: «Веб-аналитика для b2b»
Александр Кузьмин: «Веб-аналитика для b2b»Александр Кузьмин: «Веб-аналитика для b2b»
Александр Кузьмин: «Веб-аналитика для b2b»
 
Автоматическое тестирование Web api
Автоматическое тестирование Web apiАвтоматическое тестирование Web api
Автоматическое тестирование Web api
 
15 - Web-технологии. Сессии и авторизация
15 - Web-технологии. Сессии и авторизация15 - Web-технологии. Сессии и авторизация
15 - Web-технологии. Сессии и авторизация
 
алексей диплом презентация
алексей диплом презентацияалексей диплом презентация
алексей диплом презентация
 
Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"
 
Установка GTM
Установка GTMУстановка GTM
Установка GTM
 
Конкурс для разработчиков от Evernote
Конкурс для разработчиков от EvernoteКонкурс для разработчиков от Evernote
Конкурс для разработчиков от Evernote
 
ITmozg, Даниил Павлючков
ITmozg, Даниил ПавлючковITmozg, Даниил Павлючков
ITmozg, Даниил Павлючков
 
Auth methods lomalkin
Auth methods lomalkinAuth methods lomalkin
Auth methods lomalkin
 
WebAuthn в реальной жизни, Анатолий Остапенко
WebAuthn в реальной жизни, Анатолий ОстапенкоWebAuthn в реальной жизни, Анатолий Остапенко
WebAuthn в реальной жизни, Анатолий Остапенко
 
Microsoft ALM вопросы лицензирования
Microsoft ALM вопросы лицензированияMicrosoft ALM вопросы лицензирования
Microsoft ALM вопросы лицензирования
 
QaApi: взгляд на тестирование с другой стороны баррикад
QaApi: взгляд на тестирование с другой стороны баррикадQaApi: взгляд на тестирование с другой стороны баррикад
QaApi: взгляд на тестирование с другой стороны баррикад
 
Stas Sultanov "REST again? Oh, come on!"
Stas Sultanov "REST again? Oh, come on!"Stas Sultanov "REST again? Oh, come on!"
Stas Sultanov "REST again? Oh, come on!"
 
«Идентификация, аутентификация, авторизация – встроенные функции приложений и...
«Идентификация, аутентификация, авторизация – встроенные функции приложений и...«Идентификация, аутентификация, авторизация – встроенные функции приложений и...
«Идентификация, аутентификация, авторизация – встроенные функции приложений и...
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
 
ERP Глазами Злоумышленника
ERP Глазами ЗлоумышленникаERP Глазами Злоумышленника
ERP Глазами Злоумышленника
 

More from marcwan

Mcc scripts deck (日本語)
Mcc scripts deck (日本語)Mcc scripts deck (日本語)
Mcc scripts deck (日本語)marcwan
 
Getting started with Google Analytics and the AdWords API
Getting started with Google Analytics and the AdWords APIGetting started with Google Analytics and the AdWords API
Getting started with Google Analytics and the AdWords APImarcwan
 
Bid Estimation with the AdWords API (v2)
Bid Estimation with the AdWords API (v2)Bid Estimation with the AdWords API (v2)
Bid Estimation with the AdWords API (v2)marcwan
 
Opportunity Analysis with Kratu (v2)
Opportunity Analysis with Kratu (v2)Opportunity Analysis with Kratu (v2)
Opportunity Analysis with Kratu (v2)marcwan
 
Opportunity Analysis with Kratu
Opportunity Analysis with KratuOpportunity Analysis with Kratu
Opportunity Analysis with Kratumarcwan
 
07. feeds update
07. feeds update07. feeds update
07. feeds updatemarcwan
 
AdWords API & OAuth 2.0, Advanced
AdWords API & OAuth 2.0, Advanced AdWords API & OAuth 2.0, Advanced
AdWords API & OAuth 2.0, Advanced marcwan
 
AdWords Scripts and MCC Scripting
AdWords Scripts and MCC ScriptingAdWords Scripts and MCC Scripting
AdWords Scripts and MCC Scriptingmarcwan
 
AwReporting Update
AwReporting UpdateAwReporting Update
AwReporting Updatemarcwan
 
Getting Started with AdWords API and Google Analytics
Getting Started with AdWords API and Google AnalyticsGetting Started with AdWords API and Google Analytics
Getting Started with AdWords API and Google Analyticsmarcwan
 
Shopping Campaigns and AdWords API
Shopping Campaigns and AdWords APIShopping Campaigns and AdWords API
Shopping Campaigns and AdWords APImarcwan
 
API Updates for v201402
API Updates for v201402API Updates for v201402
API Updates for v201402marcwan
 
AdWords API Targeting Options
AdWords API Targeting OptionsAdWords API Targeting Options
AdWords API Targeting Optionsmarcwan
 
Reporting Tips and Tricks (Spanish)
Reporting Tips and Tricks (Spanish)Reporting Tips and Tricks (Spanish)
Reporting Tips and Tricks (Spanish)marcwan
 
Rate limits and performance (Spanish)
Rate limits and performance (Spanish)Rate limits and performance (Spanish)
Rate limits and performance (Spanish)marcwan
 
OAuth 2.0 (Spanish)
OAuth 2.0 (Spanish)OAuth 2.0 (Spanish)
OAuth 2.0 (Spanish)marcwan
 
End to-end how to build a platform (Spanish)
End to-end how to build a platform (Spanish)End to-end how to build a platform (Spanish)
End to-end how to build a platform (Spanish)marcwan
 
AwReporting tool introduction (Spanish)
AwReporting tool introduction (Spanish)AwReporting tool introduction (Spanish)
AwReporting tool introduction (Spanish)marcwan
 
Api update rundown (Spanish)
Api update rundown (Spanish)Api update rundown (Spanish)
Api update rundown (Spanish)marcwan
 
AdWords Scripts (Spanish)
AdWords Scripts (Spanish)AdWords Scripts (Spanish)
AdWords Scripts (Spanish)marcwan
 

More from marcwan (20)

Mcc scripts deck (日本語)
Mcc scripts deck (日本語)Mcc scripts deck (日本語)
Mcc scripts deck (日本語)
 
Getting started with Google Analytics and the AdWords API
Getting started with Google Analytics and the AdWords APIGetting started with Google Analytics and the AdWords API
Getting started with Google Analytics and the AdWords API
 
Bid Estimation with the AdWords API (v2)
Bid Estimation with the AdWords API (v2)Bid Estimation with the AdWords API (v2)
Bid Estimation with the AdWords API (v2)
 
Opportunity Analysis with Kratu (v2)
Opportunity Analysis with Kratu (v2)Opportunity Analysis with Kratu (v2)
Opportunity Analysis with Kratu (v2)
 
Opportunity Analysis with Kratu
Opportunity Analysis with KratuOpportunity Analysis with Kratu
Opportunity Analysis with Kratu
 
07. feeds update
07. feeds update07. feeds update
07. feeds update
 
AdWords API & OAuth 2.0, Advanced
AdWords API & OAuth 2.0, Advanced AdWords API & OAuth 2.0, Advanced
AdWords API & OAuth 2.0, Advanced
 
AdWords Scripts and MCC Scripting
AdWords Scripts and MCC ScriptingAdWords Scripts and MCC Scripting
AdWords Scripts and MCC Scripting
 
AwReporting Update
AwReporting UpdateAwReporting Update
AwReporting Update
 
Getting Started with AdWords API and Google Analytics
Getting Started with AdWords API and Google AnalyticsGetting Started with AdWords API and Google Analytics
Getting Started with AdWords API and Google Analytics
 
Shopping Campaigns and AdWords API
Shopping Campaigns and AdWords APIShopping Campaigns and AdWords API
Shopping Campaigns and AdWords API
 
API Updates for v201402
API Updates for v201402API Updates for v201402
API Updates for v201402
 
AdWords API Targeting Options
AdWords API Targeting OptionsAdWords API Targeting Options
AdWords API Targeting Options
 
Reporting Tips and Tricks (Spanish)
Reporting Tips and Tricks (Spanish)Reporting Tips and Tricks (Spanish)
Reporting Tips and Tricks (Spanish)
 
Rate limits and performance (Spanish)
Rate limits and performance (Spanish)Rate limits and performance (Spanish)
Rate limits and performance (Spanish)
 
OAuth 2.0 (Spanish)
OAuth 2.0 (Spanish)OAuth 2.0 (Spanish)
OAuth 2.0 (Spanish)
 
End to-end how to build a platform (Spanish)
End to-end how to build a platform (Spanish)End to-end how to build a platform (Spanish)
End to-end how to build a platform (Spanish)
 
AwReporting tool introduction (Spanish)
AwReporting tool introduction (Spanish)AwReporting tool introduction (Spanish)
AwReporting tool introduction (Spanish)
 
Api update rundown (Spanish)
Api update rundown (Spanish)Api update rundown (Spanish)
Api update rundown (Spanish)
 
AdWords Scripts (Spanish)
AdWords Scripts (Spanish)AdWords Scripts (Spanish)
AdWords Scripts (Spanish)
 

OAuth 2.0 refresher (russian)