Microsoft Web外接程序“ Office.context.mailbox.getCallbackTokenAsync”在我的Exchange 2016上返回响应“失败”,但可以在Office 365在线版中使用

时间:2019-05-09 14:15:12

标签: oauth office365 exchange-server exchangewebservices outlook-web-addins

我们已经交换了2016年服务器,我们最近将其更新为CU-12,因为我们认为这可能是服务器更新,但是现在看来它也不适用于更新

我只是在使用传递API的帮助下使用Rest API来使用Addin从当前邮件中获取某些字段。

但是每次调用函数“ Office.context.mailbox.getCallbackTokenAsync”时,它都会引发“失败”响应。

代码:

 1 Office.context.mailbox.getCallbackTokenAsync({isRest: true, "asyncContext" : this.__archiveComponent}, function(result){
 2 if (result.status === "succeeded") {
 3    let accessToken = result.value;
 4    result.asyncContext.getMultiValueExtendedProperty(accessToken,data[0]);
 5 } else {
 6     var err = result.name;
 7     console.log(err.name + ": " + err.message);
 8   }
 9 });

错误:在浏览器控制台中,JSON响应的详细信息为:

{"Header":{"ServerVersionInfo":{"MajorVersion":15,
"MinorVersion":1,
"MajorBuildNumber":1713,
"MinorBuildNumber":5,
"Version":"V2017_07_11"
}},

"Body":{"ResponseMessages":{
"Items":[{"__type":"GetClientAccessTokenResponseMessage:#Exchange",
"MessageText":"The token for this extension could not be retrieved.",
"ResponseCode":"ErrorInvalidClientAccessTokenRequest",
"ResponseClass":"Error",
"Token":null}]
}}}

注意:这在Office 365在线版中可以正常工作。我在OnPrem服务器上部署了相同的服务器 Exchange 2016 CU-12更新。

如果有人已将其修复,希望它会得到一些详细的解释。我认为必须进行一些配置,但需要指导。

我有些怀疑

  1. Rest Api是否只能在Office Online上使用,而不能在OnPrem交换服务器上使用?

  2. 还是必须进行在线交流才能使用HYBRID在onPrem Exchange服务器上进行这项工作?

如果是,那么如果我们使用rest API构建插件,而客户没有在线办公室,将如何在Prem交换服务器上对客户进行这项工作。

更多信息:我也看到类似Similar question的类似问题,但是没有相关的答案或建议可以清除上述问题。

1 个答案:

答案 0 :(得分:2)

基于以上评论,如果您遇到“缺少签名证书”问题,则可能是因为Admin Server从未创建新的证书。这些步骤可以解决问题。

1)使用New-ExchangeCertificate cmdlet创建新的自签名证书

2)使用Set-AuthConfig cmdlet修改授权配置,以设置指纹并发布在步骤#1中创建的证书