LiveId API не удается - отсутствует токен
-
25-10-2019 - |
Вопрос
Я пытаюсь получить некоторую информацию из API LiveID, но получаю ошибку:
The provided request does not include an access token. An access token is
required in order to request this resource.
Код относительно прост; Я включаю библиотеку, звоню nameidentifier
утверждаю, что я получаю от WIF, а затем запрошу мне дорожка.
Из сообщения об ошибке я предполагаю, что мне не удалось предоставить токен доступа ... но разве у моего приложения это уже не было, так как я успешно получил претензию?
Вот мой код:
<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
});
* Обновить *
Мне пришло в голову, что мне нужно войти в систему, поэтому у меня есть:
WL.init({ client_id: 'O0UpnnhoiFljBJAtTxhVliu4qtbUWoEVxdgfK7SBR+M=' });
WL.login();
WL.api({ path: "me", method: "GET" }, function (response) {
Но та же ошибка ...
Решение
Так что это было немного сложнее ... очевидно, нужно создать приложение с системой LiveID на:
https://manage.dev.live.com/
Сайт дает вам ClientId, и тогда код должен быть таким:
<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);
});
Интересно, что Эккис Я вижу, что вошел в систему, так как везде не появляется нигде, и сейчас я в замешательстве, но я думаю, что я использовал паспортную учетную запись, думая, что это была учетная запись Liveid. Я не уверен, что понимаю, в чем разница, но теперь, когда я настроил свою учетную запись LiveId, чтобы получить все/фамилию, все это работает.
Одно последнее примечание: создание приложения на сайте Live.com требуется, чтобы предоставить URL -адрес возврата. когда WL.login()
Получается, браузер выявляет окно, требующее разрешений на разрешения (хотя он/он уже подписал). Когда пользователь нажимает OK, URL -адрес возврата загружается в это окно. GRR ... так что теперь у вас должна быть особая страница, что все, что она делает, это закрывает окно (если кто -то еще не может предложить, как это должно работать).
* Обновить *
Я хотел, чтобы кровавая электронная почта (я могу получить его от всех остальных IPS). Итак, чтобы сделать это:
WL.login({ scope: ["wl.signin", "wl.emails"] });
а потом:
WL.api({ path: "me", method: "GET" }, function (response) {
$('#Auth .SignedIn').html(response.emails.account);
});
Это получит адрес электронной почты, связанный с учетной записью. Доступны другие электронные письма, см. http://msdn.microsoft.com/en-us/library/hh243648.aspx#user