2012-02-23 10 views
11

Sé que hay cuestiones similares, pero tengan paciencia conmigo ...¿Cómo obtengo los datos de correo electrónico de contactos de un usuario de Windows Live?

He golpeado problemas similares a otros interrogadores respecto consiguiendo solamente versiones hash de direcciones de correo electrónico de contacto, and understand why.

La cuestión es que me he dado cuenta de que Google + parece ser capaz de obtener direcciones de correo electrónico de contacto sin problemas usando LiveConnect. Usando el violín, noto que parecen estar solicitando un alcance de autenticación "wl.contacts_emails" que does not seem to be documented.

Algunos google sugieren "permisos mejorados", pero no hay mención de esto al configurar o editar una aplicación de Windows Live Connect en su sitio.

¿Cómo obtengo este alcance en mi aplicación?

+1

Este alcance funciona para mí. No sé lo que te falta. Solo comente aquí y puedo ayudarlo a encontrar una solución. – nalply

+1

Me di cuenta de esto y estoy interesado si este alcance todavía funciona. Lo probé en la demostración de SDK en vivo y funcionó, pero se niega a trabajar con Oauth desde mi aplicación web. ¿Sigue funcionando en tu caso? – FreeCandies

+0

@FreeCandies Consulte mis respuestas a la respuesta a continuación. Verifique las URL que usa para autorizar y obtener el token de acceso. – Vilinkameni

Respuesta

9

Funciona para mí en producción usando wl.contacts_emails EN CONJUNCIÓN CON wl.emails. No lo probé solo con wl.contacts_emails, pero linkedin usa ambos ámbitos.

Después WL.init aquí es el alcance total utilizado:

WL.login({ 
    scope: ['wl.basic', 'wl.emails', 'wl.contacts_emails'], 
}).then(function(response) { 

Todavía no está documentada y Microsoft tiene explicitly stated que no se puede obtener las direcciones de correo electrónico de contacto, a fin de utilizar con precaución. Sin embargo, todo el sistema Oauth es la broma más grande de una API con la que he trabajado, así que supongo que es tan feo que alguien se olvidó de escribirlo.

Editar: full story está aquí, Microsoft ha confirmado la existencia de wl.contacts_emails, y afirma que solo funciona con ciertos socios que hayan establecido acuerdos con ellos. Sin embargo, están mintiendo para cubrir sus huellas y funciona para todos los clientes. Todo el asunto es un desastre.

TL; DR wl.contacts_emails funciona pero no lo admitirán, por lo que existe la posibilidad de que en algún momento en el futuro puedan arrancarlo de debajo de usted.

+0

¡Muchas gracias! ¡Eso es lo que necesito! –

+0

Esto parece no funcionar más. Obtengo '? Error = invalid_scope & error_description = El% 20proporcionado% 20value% 20for% 20the% 20input% 20parameter% 20% 27scope% 27% 20is% 20not% 20valid% 20for% 20this% 20client% 20application' (error" El valor provisto para el parámetro de entrada 'scope' no es válido para esta aplicación de cliente. ") agregado a mi URL de punto final cuando trato de usar' wl.contacts_emails' junto con 'wl.emails' y' wl.basic' como 'scope' . Sin embargo, cuando llamo a '/ me/contacts' con' wl.basic, wl.emails, wl.contacts_emails' a través del "Interactive Live SDK", mi lista de contactos aparece a través de correos electrónicos. – Vilinkameni

+0

Actualización: parece que recibo este error al pasar esos parámetros a 'https: // oauth.live.com/authorize' y' https: // oauth.live.com/token' (valores predeterminados de la biblioteca 'oauth2-client' para PHP), pero cuando cambié las URL a 'https: // login.live.com/oauth20_authorize.srf' y' https: // login.live.com/oauth20_token.srf' respectivamente en la clase "Microsoft", siguiendo [el consejo aquí] (http://techjoomla.com/invitex/how-to-use-hotmailrest-api-to-import-contacts.html), funcionó. – Vilinkameni

Cuestiones relacionadas