Login con Yammer

Existen múltiples razones por las que podrías querer que un usuario hiciese login en tu app con su cuenta de Yammer. Puede ser para darle la posibilidad de acceder con un sólo click, evitando un proceso de registro. Puede ser que quieras hacer el login con Yammer porque tu aplicación use alguna de sus APIs. Incluso puede que hagas una aplicación corporativa que se integre totalmente con Yammer con la que quieras sacar dinero a todos los clientes de los que ya dispone. Sea el que sea el motivo y el resultado final que queráis, lo primerísimo es saber que demonios hay que hacer para permitir a un usuario hacer login con Yammer.

La verdad es que el proceso con Yammer es muy sencillito, y siguiendo su documentación se puede hacer sin problemas, pero a veces hay que verlo para creérselo, así que vamos a ello:

Lo primero es crear una app en una red de Yammer. No quiere decir que tengamos que implementar una app para cada red en la que la que queramos tenerla funcionando, pero sí que para empezar y probar tienes que tirar de alguna red. Aunque se puede acceder por los menús, para que no os perdáis lo más fácil es ir directamente a la página de client applications. Al pulsar el botón para registrar una nueva app tendremos que rellenar un formulario en el que el único campo que tiene un poco de misterio es el de «Redirect URI».

Formulario de registro de una nueva app en Yammer

Formulario de registro de una nueva app en Yammer

El detalle que hay que tener en cuenta con ese campo es que, cuando posteriormente hagamos una solicitud de autorización a la API (y al usuario se le muestre la ventana de login de Yammer), tendremos que pasar una url de callback para que Yammer nos avise de que ya ha acabado y qué ha sido lo que ha pasado. Esa url ha de coincidir con la que tengamos configurada en Yammer, aunque no necesariamente al 100%. Por ejemplo podremos introducir un puerto o una query string sin problemas:

REGISTERED REDIRECT URI REDIRECT_URI PARAMETER PASSED TO AUTHORIZE VALID?

YES

YES

YES

YES

NO

YES

NO

Tampoco os estreséis mucho si aun no tenéis claro dónde vais a implementar el login con Yammer y no sabéis cual será la url de callback, ya que es un valor que podréis cambiar más adelante sin problemas.

Con esta app ya creada ya podréis empezar a desarrollar, y tranquilos que los usuarios de vuestra red no podrán verla y usarla hasta que rellenéis los datos de «App Directory» y pulséis «Deploy».

El siguiente paso es desde vuestra aplicación, o desde el Postman (una extensión de Chrome indispensable si trabajáis con APIs), o desde un navegador, tendréis que hacer una redirección (o mostrar un contenedor web si es una app de escritorio o móvil) a:

https://www.yammer.com/oauth2/authorize?client_id={0}&redirect_uri={1}

A esa url le podéis pasar un parámetro adicional llamado response_type, el cual puede tener el valor token o code (opción por defecto). La diferencia entre ambos es que, si usas el primero Yammer te devuelve directamente el token con el que podrás llamar a las API como si fuera un ancla de la página:

https://tuUrlDeCallback#access_token=token

Sin embargo, con la segunda opción recibiréis por la query string un código en el parámetro code (o un error en el parámetro error si el usuario ha dicho que no autoriza), con el que solicitar posteriormente el token desde el servidor, para lo cual solo tendréis que hacer un request a la url:

https://www.yammer.com/oauth2/access_token.json?client_id={0}&client_secret={1}&code={2}

Y os devolverá el token en el cuerpo de la respuesta acompañado de varios datos adicionales como el usuario que se ha logueado o la red a la que pertence:

{
  "access_token": {
    "view_subscriptions": true,
    "expires_at": null,
    "authorized_at": "2011/04/06 16:25:46 +0000",
    "modify_subscriptions": true,
    "modify_messages": true,
    "network_permalink": "yammer-inc.com",
    "view_members": true,
    "view_tags": true,
    "network_id": 155465488,
    "user_id": 1014216,
    "view_groups": true,
    "token": "ajsdfiasd7f6asdf8o",
    "network_name": "Yammer",
    "view_messages": true,
    "created_at": "2011/04/06 16:25:46 +0000"
  },
  "user":
  {
    "timezone": "Hawaii",
    "interests": null,
    "type": "user",
    "mugshot_url": "https://www.yammer.com/yamage-backstage/photos/…",
    "kids_names": null,
    "settings": {
      "xdr_proxy": "https://stagexdrproxy.yammer.com"
    },
    "schools": [],
    "verified_admin": "false",
    "birth_date": "",
    "expertise": null,
    "job_title": "",
    "state": "active",
    "contact": {
      "phone_numbers": [],
      "im": {
        "provider": "",
        "username": ""
      },
      "email_addresses": [
        {
          "type": "primary",
          "address": "test@yammer-inc.com"
        }
      ]
    },
    "location": null,
    "previous_companies": [],
    "hire_date": null,
    "admin": "false",
    "full_name": "TestAccount",
    "network_id": 155465488,
    "stats": {
      "updates": 2,
      "followers": 0,
      "following": 0
    },
    "can_broadcast": "false",
    "summary": null,
    "external_urls": [],
    "name": "clientappstest",
    "network_domains": [
      "yammer-inc.com"
    ],
    "network_name": "Yammer",
    "significant_other": null,
    "id": 1014216,
    "web_url": "https://www.yammer.com/yammer-inc.com/users/…",
    "url": "https://www.yammer.com/api/v1/users/101416",
    "guid": null
  },
  "network": {
    "type": "network",
    "header_background_color": "#0092bc",
    "community": false,
    "navigation_background_color": "#3f5f9e",
    "navigation_text_color": "#ffffff",
    "permalink": "yammer-inc.com",
    "paid": true,
    "show_upgrade_banner": false,
    "name": "Yammer",
    "is_org_chart_enabled": true,
    "id": 155465488,
    "header_text_color": "#000000",
    "web_url": "https://www.yammer.com/yammer-inc.com"
  }
}

Con el token ya podréis hacer llamadas a los distintos métodos de la API de Yammer poniendo una cabecera authorization con un valor «Bearer tokenRecibidoDeYammer» (lo de «Bearer» os sonará si habéis usado otras APIs de Microsoft). Debéis tener en cuenta que para algunos métodos como los que permiten borrar usuarios, el token que uséis debe ser de un usuario administrador verificado, y que sólo se pueden tener estos si pasas por caja.

Como veis, hacer login con Yammer es muy sencillito, y su API os deja hacer muchas cosas, así que es sólo cosa de darle al coco. Otro día os contaré como hacer lo mismo con la API de Graph que unifica todas las funcionalidades expuestas de Office 365, pero eso ya el año que viene, que yo me tomo muy en serio las fiestas de guardar 😉

Post By Javi López (27 Posts)

Arquitecto/desarrollador, creativo, buscador de nuevas soluciones y modelos de negocio, crítico constructivo y ex muchas cosas

Website: → JaviLopezG

Connect

Trackbacks/Pingbacks

  1. Login con O365 - Cantabria TIC - 12 enero, 2016

    […] la resaca de las fiestas toca ponerse en marcha de nuevo, y si os gustó ese post en el que os contaba como hacer login con Yammer en vuestra app, os va a encantar este en el que os contaré como hacer login con O365 (Office 365) […]

  2. Login con Twitter - Cantabria TIC - 19 enero, 2016

    […] el login con Twitter, al igual que pasa con el de Yammer y Office que vimos anteriormente, nos permite, no sólo identificar al usuario, sino que también […]

  3. Login con Twitter – JaviLopezG - 10 mayo, 2017

    […] el login con Twitter, al igual que pasa con el de Yammer y Office que vimos anteriormente, nos permite, no sólo identificar al usuario, sino que también […]

Deja un comentario

Leave your opinion here. Please be nice. Your Email address will be kept private.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies
Translate »