Microsoft graph api Office API getAccessTokenAsync结果从图形生成InvalidAuthenticationToken响应
我已经尝试解决这个问题有一段时间了,我正在为Outlook开发一个Office js加载项,并试图通过我的加载项访问Microsoft Graph数据 但我无法验证从getAccessTokenAsync接收的令牌。 如果我尝试从Office JS Helpers使用验证器,我可以获得访问权限,但我更愿意使用插件的内置功能 我尝试使用的代码如下: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
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"
}
}
}