我正在尝试从LiveID API中检索一些信息,但正在遇到错误:

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/

该网站为您提供客户端,然后代码需要这样:

<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 我看到自己登录了,因为到处都没有出现在任何地方,现在我感到困惑,但是我认为我一直在使用护照帐户,认为这是一个LiveID帐户。我不确定我知道有什么区别,但是现在我已经配置了我的liveID帐户以拥有一个/姓氏,这一切都可以。

最终注意:在Live.com网站上创建该应用程序需要一个提供返回URL。当。。。的时候 WL.login() 被调用后,浏览器弹出一个窗口,要求用户获得权限(即使他/他已经登录了)。当用户单击确定时,将返回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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top