LiveID API non riesce - pedina mancante
-
25-10-2019 - |
Domanda
sto cercando di recuperare alcune informazioni dal API LiveID ma sto ottenendo l'errore:
The provided request does not include an access token. An access token is
required in order to request this resource.
Il codice è relativamente semplice; Sto compresa la biblioteca, chiamando l'initialiser con la pretesa nameidentifier
che ricevo da WIF e quindi richiede il me percorso.
dal messaggio di errore suppongo non sono riuscito a fornire un token di accesso ... ma non sarebbe la mia app avere questo già da quando ho recuperato con successo la pretesa?
ecco il mio codice:
<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
});
* aggiornamento *
mi venne in mente, forse ho bisogno di accedere al sistema in modo da ora ho:
WL.init({ client_id: 'O0UpnnhoiFljBJAtTxhVliu4qtbUWoEVxdgfK7SBR+M=' });
WL.login();
WL.api({ path: "me", method: "GET" }, function (response) {
, ma lo stesso errore ...
Soluzione
quindi è stato un po 'più complicato ... a quanto pare si deve creare un'applicazione con il sistema LiveID all'indirizzo:
https://manage.dev.live.com/
il sito vi darà un ClientID e poi le esigenze di codice per essere come questo:
<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);
});
È interessante notare che il ekkis mi vedo il login come in tutto il mondo non appare da nessuna parte e sono confuso, ma ora penso che ho usato un account Passport, pensando che fosse un conto LiveID . Io non sono sicuro di aver capito quale sia la differenza, ma ora che ho configurato il mio conto LiveID di avere un nome / cognome funziona il tutto.
Una nota finale: la creazione dell'app sul sito live.com richiede di fornire un URL di ritorno. quando il WL.login()
viene chiamato, il browser apre una finestra che richiede all'utente per le autorizzazioni (anche se s / ha già firmato). Quando l'utente fa clic su OK, l'URL di ritorno viene caricato in quella finestra. grr ... così ora è necessario disporre di una pagina speciale che tutto ciò che fa è vicino alla finestra (a meno che qualcuno altro qui può suggerire come si suppone di lavoro).
* aggiornamento *
quello che avrei voluto era l'e-mail sanguinosa (posso ottenere da tutti gli altri IP). modo per farlo:
WL.login({ scope: ["wl.signin", "wl.emails"] });
e poi:
WL.api({ path: "me", method: "GET" }, function (response) {
$('#Auth .SignedIn').html(response.emails.account);
});
che otterrà l'indirizzo e-mail associato all'account. ci sono altre e-mail disponibili, vedere: http://msdn.microsoft .com / it-it / library / hh243648.aspx # utente