API LiveID не работает - отсутствует токен - PullRequest
0 голосов
/ 25 июля 2011

Я пытаюсь получить некоторую информацию из API LiveID, но получаю сообщение об ошибке:

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

код относительно прост;Я включаю библиотеку, вызываю инициализатор с заявкой nameidentifier, которую я получаю от WIF, а затем запрашиваю путь me .

из сообщения об ошибке, которое, я полагаю, не предоставилотокен доступа ... но разве мое приложение не получило бы его уже после того, как я успешно получил претензию?

вот мой код:

<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) {

, но та же ошибка ...

1 Ответ

1 голос
/ 25 июля 2011

так что это было немного сложнее ... очевидно, нужно создать приложение с системой 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);
});

интересно, ekkis Я вижу себя вошедшим в систему, поскольку везде нигде не появляется, и я запутался сейчас, но мне кажется, что я использовал учетную запись Passport, думая, что это учетная запись LiveID. Я не уверен, что понимаю разницу, но теперь, когда я настроил свою учетную запись LiveID на имя / фамилию, все это работает.

последнее замечание: для создания приложения на сайте live.com необходимо указать URL-адрес возврата. когда вызывается WL.login(), в браузере появляется окно, запрашивающее у пользователя разрешения (даже если он / она уже вошел в систему). Когда пользователь нажимает Ok, обратный URL-адрес загружается в это окно. grr ... так что теперь у вас должна быть специальная страница, все, что она делает, это закрывает окно (если кто-то здесь не может подсказать, как это должно работать).

* обновление *

что я хотел, так это кровавую электронную почту (я могу получить ее со всех других IP-адресов). Для этого:

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

...