AdWords API Workshops – All rights reserved
Matias Gomez Carabias, CSE, Google.

AdWords API Workshops – All rights reserved
Agenda
●
●
●
●
●
●

Introduccion
Preparacion
Obtención del Token de Acceso
Demo
Detalle de los flujos de OAuth 2.0
Recursos Disponibles

AdWords API Workshops – All rights reserved
Introduccion

AdWords API Workshops – All rights reserved
Que es OAuth 2.0?
Has visto esta ventana? Una aplicacion esta solicitando
un acceso a tus datos. Se puede permitir o denegar. Se
puede revocar en cualquier momento.

AdWords API Workshops – All rights reserved
Que pasa detras realmente?
La aplicacion obtiene un access token y un refresh token
luego de que el dueño lo permite, lo cual es requerido para
acceder a los servicios de Google
{
"access_token" : "yaxx.xxxxxxxxxxxx",
"token_type" : "Bearer",
"expires_in" : 3600,
"refresh_token" : "1/xxxxxxxxxxxxxxxxxxxg"
}
AdWords API Workshops – All rights reserved
Accediendo mediante un access Token
La aplicacion puede ahora acceder a los datos mediante el
access token.
$ curl -H "Authorization: Bearer ya29.AHxxxxxxxxxxxxxxxxxxxx"
https://www.googleapis.com/plus/v1/people/me
{
...
"id": "108294709823331281952",
"displayName": "Ryuichi Hoshi",
"url": "https://plus.google.com/108294709823331281952",
...
AdWords API Workshops – All rights reserved
Como funciona OAuth2.
El flujo de OAuth2 se divide en dos partes: Obtener el
access token y acceder el servicio con el token
Obtener un Access token para una
cuenta mediante la aprobación del
dueño de dicha cuenta.

Acceso a los servicios de Google con
el Access Token
AdWords API Workshops – All rights reserved
Beneficios de usar OAuth 2.0
● Mayor seguridad
○ No se expone el username/password

● Control de Acceso mas especifico
○ Los tokens pueden tener alcance restringido sobre los datos
○ Token facilmente revocable
○ Impacto reducido ante un token comprometido

● Sin CAPTCHAs

AdWords API Workshops – All rights reserved
Desventajas de ClientLogin
● Exposicion de username/passwords
○ Acceso completo a la cuenta incluyendo la posibilidad de
cambiar el password.

● Revocar un token no es muy sencillo
○ El token dura 2 semanas.
○ Es necesario cambiar la password para invalidar el token.

● El uso de CAPTCHA es a veces requerido
○ No es posible automatizar la autenticación cuando el
CAPTCHA es requerido.
AdWords API Workshops – All rights reserved
Preparacion

AdWords API Workshops – All rights reserved
Crear un Client ID y Client secret
Todas las aplicaciones que usan OAuth 2.0 deben estar
registradas
Si aún no fueron creados un Client ID y Client Secret, este
es el primer paso para utilizar OAuth 2.0 para los servicios
de Google

AdWords API Workshops – All rights reserved
Crear un nuevo proyecto con Google API
Console

AdWords API Workshops – All rights reserved
Crear un nuevo Client Id de OAuth 2.0

AdWords API Workshops – All rights reserved
Ingresar el nombre de producto

AdWords API Workshops – All rights reserved
Elegir el tipo de aplicacion

AdWords API Workshops – All rights reserved
Ahora, ya hemos generado el Client ID and
Client secret!

AdWords API Workshops – All rights reserved
Obtener el Access Token

AdWords API Workshops – All rights reserved
Obtener un Access Token con ClientLibrary
El ClientLibrary de Java tiene una pequeña herramienta
que nos permite obtener un access token

AdWords API Workshops – All rights reserved
Obtener el Access Token con ClientLibrary
1. Descargar y extraer el proyecto de ejemplo
adwords-axis-examples-1.20.0.tar.gz from downloads

2. Editar el archivo de propiedades
src/main/resources/ads.properties
para incluir la información de OAuth2 (client ID y client secret) e información
básica de la cuenta

AdWords API Workshops – All rights reserved
Obtener el Access Token con ClientLibrary
3. Compilar y Ejecutar el program
$ mvn -X compile
$ mvn -X exec:java 
-Dexec.mainClass="adwords.axis.auth.GetRefreshToken"
Muestra algo como esto:
Paste this url in your browser:
https://accounts.google.com/o/oauth2/auth?
access_type=offline&client_id=xxxxxxxx.apps.googleusercontent.
com&redirect_uri=urn:ietf:wg:oauth:2.0:
oob&response_type=code&scope=https://adwords.google.com/api/adwords
AdWords API Workshops – All rights reserved
Obtener el Access Token con ClientLibrary
4. Pegar la URL en un browser.
Nota: Es necesario estar logueado con una cuenta de
MCC antes de hacerlo.

AdWords API Workshops – All rights reserved
Obtener el Access Token con ClientLibrary
5. Aceptar el Request
Se obtendrá un código que puede ser usado par
intercambiar con el nuevo Access Token

AdWords API Workshops – All rights reserved
Obtener el Access Token con ClientLibrary
6. Insertar el código en el programa que se esta ejecutando
Type the code you received here:
4/-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxwI
Your refresh token is: 1/xxxxxxxxxxxxxxxxxxxxTl1vg
In your ads.properties file, modify:
api.adwords.refreshToken=1/xxxxxxxxxxxxxxxxxxxxTl1vg

7. Agregar el archivo ads.properties con el refresh token

AdWords API Workshops – All rights reserved
Obtener el Access Token con ClientLibrary
Felicitaciones!
Ahora, su aplicacion tiene un access token y refresh
token!
Client Library automáticamente obtiene un nuevo access
token con el refresh token cada vez que sea requerido.

AdWords API Workshops – All rights reserved
Demo

AdWords API Workshops – All rights reserved
Detalle de los flujos de OAuth 2.0

AdWords API Workshops – All rights reserved
Flujos de OAuth 2.0 soportados
Google soporta los siguientes escenarios de OAuth 2.0
●
●
●
●

Web server applications
Installed applications
Applications on limited-input devices
Service Accounts requires your own Google Apps domain

AdWords API Workshops – All rights reserved
Diferencias entre los flujos
Registration to API
Console

Registration to
API Console

Use
Client
Authentication Secret
Code

Refresh Token Redirection

Web server
applications

Required

Yes

Required

Available

URL

Installed
applications

Required

Yes

Required

Available

URL, Text

Client-side
applications

Required

-

-

-

URL

Applications on
limited-input device

Required

-

Required

Available

-

AdWords API Workshops – All rights reserved
Web server or installed application?
Elegir Installed application salvo que se tengan muchas
cuentas que necesitan autorización.
Elegir Web server application cuando se necesita
autorización para muchas cuentas.

AdWords API Workshops – All rights reserved
Flujo de Web Server Application
Casos:
Se quiere usar autenticación de OAuth 2.0 para cada
cliente en vez de invitarlos al MCC
Beneficios:
El cliente no debe darnos acceso a la UI.
No es necesario vincular las cuentas.
Es posible automatizar el proceso de intercambio mediante
este flujo.
AdWords API Workshops – All rights reserved
Flujo Installed Application
Casos:
Todas las cuentas se encuentran vinculadas a un mismo
MCC y se quiere usar un solo set de credenciales.
Beneficios:
No es necesario administrar/refrescar los access tokens
para todos los clientes.
Obtener access token para el MCC es suficiente para
acceder a todas las cuentas vinculadas.
AdWords API Workshops – All rights reserved
Recursos Disponibles

AdWords API Workshops – All rights reserved
Resources
Docs Links:
Using OAuth 2.0 to Access Google APIs: http://goo.gl/8Gis5
Using OAuth 2.0 for Web Server Applications: http://goo.gl/IghDp
Using OAuth 2.0 for Installed Applications: http://goo.gl/R9xYB
Authentication: http://goo.gl/RUotMR
Google API Console: http://goo.gl/9R42O
OAuth Service Accounts: http://goo.gl/85Hhw9
Preguntas?

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

OAuth 2.0 (Spanish)

  • 1.
    AdWords API Workshops– All rights reserved
  • 2.
    Matias Gomez Carabias,CSE, Google. AdWords API Workshops – All rights reserved
  • 3.
    Agenda ● ● ● ● ● ● Introduccion Preparacion Obtención del Tokende Acceso Demo Detalle de los flujos de OAuth 2.0 Recursos Disponibles AdWords API Workshops – All rights reserved
  • 4.
    Introduccion AdWords API Workshops– All rights reserved
  • 5.
    Que es OAuth2.0? Has visto esta ventana? Una aplicacion esta solicitando un acceso a tus datos. Se puede permitir o denegar. Se puede revocar en cualquier momento. AdWords API Workshops – All rights reserved
  • 6.
    Que pasa detrasrealmente? La aplicacion obtiene un access token y un refresh token luego de que el dueño lo permite, lo cual es requerido para acceder a los servicios de Google { "access_token" : "yaxx.xxxxxxxxxxxx", "token_type" : "Bearer", "expires_in" : 3600, "refresh_token" : "1/xxxxxxxxxxxxxxxxxxxg" } AdWords API Workshops – All rights reserved
  • 7.
    Accediendo mediante unaccess Token La aplicacion puede ahora acceder a los datos mediante el access token. $ curl -H "Authorization: Bearer ya29.AHxxxxxxxxxxxxxxxxxxxx" https://www.googleapis.com/plus/v1/people/me { ... "id": "108294709823331281952", "displayName": "Ryuichi Hoshi", "url": "https://plus.google.com/108294709823331281952", ... AdWords API Workshops – All rights reserved
  • 8.
    Como funciona OAuth2. Elflujo de OAuth2 se divide en dos partes: Obtener el access token y acceder el servicio con el token Obtener un Access token para una cuenta mediante la aprobación del dueño de dicha cuenta. Acceso a los servicios de Google con el Access Token AdWords API Workshops – All rights reserved
  • 9.
    Beneficios de usarOAuth 2.0 ● Mayor seguridad ○ No se expone el username/password ● Control de Acceso mas especifico ○ Los tokens pueden tener alcance restringido sobre los datos ○ Token facilmente revocable ○ Impacto reducido ante un token comprometido ● Sin CAPTCHAs AdWords API Workshops – All rights reserved
  • 10.
    Desventajas de ClientLogin ●Exposicion de username/passwords ○ Acceso completo a la cuenta incluyendo la posibilidad de cambiar el password. ● Revocar un token no es muy sencillo ○ El token dura 2 semanas. ○ Es necesario cambiar la password para invalidar el token. ● El uso de CAPTCHA es a veces requerido ○ No es posible automatizar la autenticación cuando el CAPTCHA es requerido. AdWords API Workshops – All rights reserved
  • 11.
    Preparacion AdWords API Workshops– All rights reserved
  • 12.
    Crear un ClientID y Client secret Todas las aplicaciones que usan OAuth 2.0 deben estar registradas Si aún no fueron creados un Client ID y Client Secret, este es el primer paso para utilizar OAuth 2.0 para los servicios de Google AdWords API Workshops – All rights reserved
  • 13.
    Crear un nuevoproyecto con Google API Console AdWords API Workshops – All rights reserved
  • 14.
    Crear un nuevoClient Id de OAuth 2.0 AdWords API Workshops – All rights reserved
  • 15.
    Ingresar el nombrede producto AdWords API Workshops – All rights reserved
  • 16.
    Elegir el tipode aplicacion AdWords API Workshops – All rights reserved
  • 17.
    Ahora, ya hemosgenerado el Client ID and Client secret! AdWords API Workshops – All rights reserved
  • 18.
    Obtener el AccessToken AdWords API Workshops – All rights reserved
  • 19.
    Obtener un AccessToken con ClientLibrary El ClientLibrary de Java tiene una pequeña herramienta que nos permite obtener un access token AdWords API Workshops – All rights reserved
  • 20.
    Obtener el AccessToken con ClientLibrary 1. Descargar y extraer el proyecto de ejemplo adwords-axis-examples-1.20.0.tar.gz from downloads 2. Editar el archivo de propiedades src/main/resources/ads.properties para incluir la información de OAuth2 (client ID y client secret) e información básica de la cuenta AdWords API Workshops – All rights reserved
  • 21.
    Obtener el AccessToken con ClientLibrary 3. Compilar y Ejecutar el program $ mvn -X compile $ mvn -X exec:java -Dexec.mainClass="adwords.axis.auth.GetRefreshToken" Muestra algo como esto: Paste this url in your browser: https://accounts.google.com/o/oauth2/auth? access_type=offline&client_id=xxxxxxxx.apps.googleusercontent. com&redirect_uri=urn:ietf:wg:oauth:2.0: oob&response_type=code&scope=https://adwords.google.com/api/adwords AdWords API Workshops – All rights reserved
  • 22.
    Obtener el AccessToken con ClientLibrary 4. Pegar la URL en un browser. Nota: Es necesario estar logueado con una cuenta de MCC antes de hacerlo. AdWords API Workshops – All rights reserved
  • 23.
    Obtener el AccessToken con ClientLibrary 5. Aceptar el Request Se obtendrá un código que puede ser usado par intercambiar con el nuevo Access Token AdWords API Workshops – All rights reserved
  • 24.
    Obtener el AccessToken con ClientLibrary 6. Insertar el código en el programa que se esta ejecutando Type the code you received here: 4/-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxwI Your refresh token is: 1/xxxxxxxxxxxxxxxxxxxxTl1vg In your ads.properties file, modify: api.adwords.refreshToken=1/xxxxxxxxxxxxxxxxxxxxTl1vg 7. Agregar el archivo ads.properties con el refresh token AdWords API Workshops – All rights reserved
  • 25.
    Obtener el AccessToken con ClientLibrary Felicitaciones! Ahora, su aplicacion tiene un access token y refresh token! Client Library automáticamente obtiene un nuevo access token con el refresh token cada vez que sea requerido. AdWords API Workshops – All rights reserved
  • 26.
    Demo AdWords API Workshops– All rights reserved
  • 27.
    Detalle de losflujos de OAuth 2.0 AdWords API Workshops – All rights reserved
  • 28.
    Flujos de OAuth2.0 soportados Google soporta los siguientes escenarios de OAuth 2.0 ● ● ● ● Web server applications Installed applications Applications on limited-input devices Service Accounts requires your own Google Apps domain AdWords API Workshops – All rights reserved
  • 29.
    Diferencias entre losflujos Registration to API Console Registration to API Console Use Client Authentication Secret Code Refresh Token Redirection Web server applications Required Yes Required Available URL Installed applications Required Yes Required Available URL, Text Client-side applications Required - - - URL Applications on limited-input device Required - Required Available - AdWords API Workshops – All rights reserved
  • 30.
    Web server orinstalled application? Elegir Installed application salvo que se tengan muchas cuentas que necesitan autorización. Elegir Web server application cuando se necesita autorización para muchas cuentas. AdWords API Workshops – All rights reserved
  • 31.
    Flujo de WebServer Application Casos: Se quiere usar autenticación de OAuth 2.0 para cada cliente en vez de invitarlos al MCC Beneficios: El cliente no debe darnos acceso a la UI. No es necesario vincular las cuentas. Es posible automatizar el proceso de intercambio mediante este flujo. AdWords API Workshops – All rights reserved
  • 32.
    Flujo Installed Application Casos: Todaslas cuentas se encuentran vinculadas a un mismo MCC y se quiere usar un solo set de credenciales. Beneficios: No es necesario administrar/refrescar los access tokens para todos los clientes. Obtener access token para el MCC es suficiente para acceder a todas las cuentas vinculadas. AdWords API Workshops – All rights reserved
  • 33.
    Recursos Disponibles AdWords APIWorkshops – All rights reserved
  • 34.
    Resources Docs Links: Using OAuth2.0 to Access Google APIs: http://goo.gl/8Gis5 Using OAuth 2.0 for Web Server Applications: http://goo.gl/IghDp Using OAuth 2.0 for Installed Applications: http://goo.gl/R9xYB Authentication: http://goo.gl/RUotMR Google API Console: http://goo.gl/9R42O OAuth Service Accounts: http://goo.gl/85Hhw9
  • 35.
    Preguntas? AdWords API Workshops– All rights reserved
  • 36.
    AdWords API Workshops– All rights reserved