live-sdk - Microsoft Live API - 访问 token 无效

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

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

  • 从客户端将用户重定向到:

  • 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
  • 我将代码返回到我的 html 页面并将其发布到我的 java 服务器。
  • 服务器端我使用代码获取访问和刷新 token ,使用 POST 请求:
    https://login.live.com/oauth20_token.srf

  • 正文中的下一个参数:client_id、redirect_uri、client_secret、grant_type="authorization_code"和 code=< 上一步的代码 >。

    我收到了 access_token 和 refresh_tokem,它们的有效期应该是 1 小时。
  • 仍然在服务器上,我调用 URL

  • https://apis.live.net/v5.0/me?access_token= <我刚刚得到的访问 token >

    并得到错误 401:
    {
       "error": {
          "code": "request_token_invalid", 
          "message": "The access token isn't valid."
       }
    }
    

    这个流量可以吗?

    最佳答案

    我终于能够让这个工作。

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

    其次,步骤1中的范围不应该设置为openid ...而是 User.Read .

    关于live-sdk - Microsoft Live API - 访问 token 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39305655/

    相关文章:

    outlook - "SSL23_GET_SERVER_HELLO:unknown protocol"尝试访问 Outlook smtp 服务器时出错

    android - 如何使用 OneDrive API Android 获取配置文件详细信息

    windows-phone-7 - WP7如何在TombStoning期间存储LiveConnectSession?

    可在 Firefox 中使用的 HTML 电子邮件签名(图片相关)

    authentication - 来自Live Writer的具有Live ID身份验证的Weblog

    c# - 通过 Windows Live ID 登录到桌面应用程序

    live-sdk - wl.signin,wl.emails 范围没有返回电子邮件数据

    contacts - 使用 Windows Live/OneDrive REST API 获取联系人的电话号码和电子邮件