Microsoft graph api Office API getAccessTokenAsync结果从图形生成InvalidAuthenticationToken响应

Microsoft graph api Office API getAccessTokenAsync结果从图形生成InvalidAuthenticationToken响应,microsoft-graph-api,office-js,office-js-helpers,Microsoft Graph Api,Office Js,Office Js Helpers,我已经尝试解决这个问题有一段时间了,我正在为Outlook开发一个Office js加载项,并试图通过我的加载项访问Microsoft Graph数据 但我无法验证从getAccessTokenAsync接收的令牌。 如果我尝试从Office JS Helpers使用验证器,我可以获得访问权限,但我更愿意使用插件的内置功能 我尝试使用的代码如下: Office.initialize = () => { var options = { forceAddAccount: true, f

我已经尝试解决这个问题有一段时间了,我正在为Outlook开发一个Office js加载项,并试图通过我的加载项访问Microsoft Graph数据

但我无法验证从getAccessTokenAsync接收的令牌。 如果我尝试从Office JS Helpers使用验证器,我可以获得访问权限,但我更愿意使用插件的内置功能

我尝试使用的代码如下:

Office.initialize = () => {
    var options = { forceAddAccount: true, forceConsent: true } as Office.AuthOptions;
    Office.context.auth.getAccessTokenAsync(options, getAccessTokenAsyncCallback);
}


function getAccessTokenAsyncCallback(accessTokenResponse) {
console.log(accessTokenResponse.value)   

client = MicrosoftGraph.Client.init({
    authProvider: (done) => {
        done(null, accessTokenResponse.value);
    },
    debugLogging: false
})
client.api("/me")
    .get((err, res, rawResponse) => {
        console.log(err)
        console.log("rawResponse")
        console.log(rawResponse)
    })
}
我的清单中的WebApplicationInfo是:

<WebApplicationInfo>
    <Id>{AppUID}</Id>
    <Resource>api://localhost:3000/{AppUID}</Resource>
    <Scopes>
      <Scope>profile</Scope>
      <Scope>user.read</Scope>
    </Scopes>
  </WebApplicationInfo>
</VersionOverrides>
我根本不知道这里的问题是什么,从getAccessTokenAsync返回的令牌就是我需要的令牌,这是我错了吗


哦,是的,我遇到的是一个Office365环境,Outlook 2016版本1807 build 10325.20118单击运行getAccessTokenAsync返回的令牌,称为引导令牌,它不允许您的外接程序直接访问MS Graph。相反,它让Office主机应用程序(本例中为Outlook)可以访问外接程序的web应用程序。然后,外接程序的web应用程序使用该令牌获取对Microsoft Graph的访问令牌。它通过使用“代表”OAuth流来实现这一点。请参阅此节点的详细文档:有关Outlook的具体指导,请参阅。

是的,我终于让它工作了很长时间,整个代币交换流程是一个复杂但令人困惑的过程。但它现在起作用了:)谢谢!
{
   "statusCode": 401,
  "code": "InvalidAuthenticationToken",
  "message": "Access token validation failure.",
  "requestId": "4a0ce952-0e90-XXXXXXXXX-db20c6cca94e",
  "date": "2018-08-30T05:37:43.000Z",
  "body": {
    "code": "InvalidAuthenticationToken",
    "message": "Access token validation failure.",
    "innerError": {
      "request-id": "4a0ce952-0e90-XXXXXXXXX-db20c6cca94e",
      "date": "2018-08-30T07:37:43"
    }
  }
}