LiveID API失败 - 缺少令牌
-
25-10-2019 - |
题
我正在尝试从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
不隶属于 StackOverflow