Microsoft Live API - 访问令牌无效

时间:2016-09-03 10:00:42

标签: live-sdk windows-live windows-live-id

我正在尝试实现“使用Outlook.com登录”流程,其中涉及客户端和服务器代码。 流程是:

    来自客户端的
  1. 将用户重定向到:
  2. https://login.live.com/oauth20_authorize.srf?client_id=< client_id >&response_type=code&redirect_uri=< the login html page >&scope=openid+offline_access+profile+https:%2f%2foutlook.office.com%2fmail.send+https:%2f%2foutlook.office.com%2fcontacts.read+onedrive.readwrite

    1. 我将代码返回到我的html页面并将其发布到我的java服务器。

    2. 在服务器端我使用代码获取访问权限并刷新令牌,使用POST请求: https://login.live.com/oauth20_token.srf

    3. 使用正文中的下一个参数:client_id,redirect_uri,client_secret,grant_type =“authorization_code”和code =&lt;上一步的代码&gt;。

      我收到了access_token和refresh_tokem,它们应该有效1小时。

      1. 仍在服务器上,我调用了网址
      2. https://apis.live.net/v5.0/me?access_token=&LT;我得到的访问令牌&gt;

        并获得错误401:

        {
           "error": {
              "code": "request_token_invalid", 
              "message": "The access token isn't valid."
           }
        }
        

        这种流程可能吗?

1 个答案:

答案 0 :(得分:0)

我终于能够使它正常工作。

首先,获取用户信息的正确端点是:
https://graph.microsoft.com/v1.0/me

第二,步骤1中的范围不应设置为openid ...,而应设置为 User.Read