I'm trying to retrieve some information from the LiveID API but am getting the error:
The provided request does not include an access token. An access token is
required in order to request this resource.
the code is relatively simple; I'm including the library, calling the initialiser with the nameidentifier
claim I get from WIF and then requesting the me path.
from the error message I surmise I failed to provide an access token... but wouldn't my app have this already since I successfully retrieved the claim?
here's my code:
<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
});
* update *
it occurred to me perhaps I need to log into the system so I now have:
WL.init({ client_id: 'O0UpnnhoiFljBJAtTxhVliu4qtbUWoEVxdgfK7SBR+M=' });
WL.login();
WL.api({ path: "me", method: "GET" }, function (response) {
but same error...
so it was a little more complicated... apparently one has to create an application with the LiveID system at:
the site give you a ClientID and then the code needs to be like this:
interestingly, the ekkis I see myself logged in as everywhere doesn't appear anywhere and I'm confused now but I think I've been using a Passport account, thinking it was a LiveID account. I'm not sure I understand what the difference is but now that I've configured my LiveID account to have a first/last name it all works.
one final note: creating the app on the live.com site requires one to provide a return url. when the
WL.login()
gets called, the browser pops up a window requesting the user for permissions (even though s/he has already signed on). When the user clicks Ok, the return url is loaded INTO THAT WINDOW. grr... so now you have to have a special page that all it does is close the window (unless someone else here can suggest how it's supposed to work).* update *
what I had wanted was the bloody e-mail (I can get it from all the other IPs). so to do that:
and then:
that will get the e-mail address associated with the account. there are other e-mails available, see: http://msdn.microsoft.com/en-us/library/hh243648.aspx#user