Pregunta

Estoy tratando de recuperar información de la API LiveID pero recibo el error:

The provided request does not include an access token. An access token is
required in order to request this resource.

El código es relativamente simple; Incluyo la biblioteca, llamando al initialiser con el nameidentifier afirmar que obtengo de wif y luego solicitando el yo sendero.

Según el mensaje de error que supongo, no pude proporcionar un token de acceso ... pero ¿mi aplicación ya no tendría esto ya que recuperé con éxito el reclamo?

Aquí está mi código:

<script src="https://js.live.net/v5.0/wl.js" type="text/javascript"></script>

<script type="text/javascript">
WL.init({ client_id: 'O0UpnnhoiFljBJAtTxhVliu4qtbUWoEVxdgfK7SBR+M=' });
WL.api({ path: "me", method: "GET" }, function (response) {
    // response.error.message
});

* actualizar *

Se me ocurrió, tal vez necesito iniciar sesión en el sistema, así que ahora tengo:

WL.init({ client_id: 'O0UpnnhoiFljBJAtTxhVliu4qtbUWoEVxdgfK7SBR+M=' });
WL.login();
WL.api({ path: "me", method: "GET" }, function (response) {

Pero el mismo error ...

¿Fue útil?

Solución

Por lo tanto, fue un poco más complicado ... aparentemente uno tiene que crear una aplicación con el sistema LiveID en:

https://manage.dev.live.com/

El sitio le brinda un cliente y luego el código debe ser así:

<script src="https://js.live.net/v5.0/wl.js" type="text/javascript"></script>
<script type="text/javascript">
WL.init({ client_id: '#YOUR-CLIENT-ID-HERE#' });
WL.login({ scope: ["wl.signin"] });
WL.api({ path: "me", method: "GET" }, function (response) {
    alert(response.first_name + ' ' + response.last_name);
});

Curiosamente, el ekkis Me veo a mí mismo que inicia sesión como en todas partes no aparece en ningún lado y ahora estoy confundido, pero creo que he estado usando una cuenta de pasaporte, pensando que era una cuenta de LifeID. No estoy seguro de entender cuál es la diferencia, pero ahora que he configurado mi cuenta de LiveID para tener un primer/apellido, todo funciona.

Una nota final: Crear la aplicación en el sitio Live.com requiere que uno proporcione una URL de retorno. cuando el WL.login() Se llama, el navegador aparece por una ventana solicitando al usuario para los permisos (aunque ya se ha registrado). Cuando el usuario hace clic en Aceptar, la URL de retorno se carga en esa ventana. GRR ... así que ahora tienes que tener una página especial que todo lo que haga es cerrar la ventana (a menos que alguien más aquí pueda sugerir cómo se supone que debe funcionar).

* actualizar *

Lo que había querido era el correo electrónico sangriento (puedo obtenerlo de todas las demás IPS). Entonces, para hacer eso:

WL.login({ scope: ["wl.signin", "wl.emails"] });

y entonces:

WL.api({ path: "me", method: "GET" }, function (response) {
    $('#Auth .SignedIn').html(response.emails.account);
});

que obtendrá la dirección de correo electrónico asociada con la cuenta. Hay otros correos electrónicos disponibles, ver: http://msdn.microsoft.com/en-us/library/hh243648.aspx#user

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top