Вопрос

Я пытаюсь получить некоторую информацию из 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top