我想为我的应用程序使用 Oauth2 身份验证。我想使用 EWS Java api 从 O365 获取数据。是否可以? 文档 http://blogs.msdn.com/b/exchangedev/archive/2014/09/24/10510847.aspx 谈论为 REST api 获取 oauth token 我是否也应该使用相同的文档来获取要与 EWS Web 服务一起使用的 token ? 任何人都可以分享使用 java 执行此操作的任何代码示例。
最佳答案
我知道,这个问题已经很老了,但今天的答案和评论仍然帮助了我。所以,我想简单总结一下:
在此拉取请求中:https://github.com/OfficeDev/ews-java-api/pull/321 如已接受答案的评论中所述, header 验证已删除。
因此,通过
设置 token 就足够了ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
service.getHttpHeaders().put("Authorization", "Bearer " + officeToken);
不要设置任何额外的凭据。
为了完整起见:在我的场景中,officeToken
是在客户端通过 Office JavaScript api 检索的
Office.initialize = function() {
$(document).ready(function (){
Office.context.mailbox.getCallbackTokenAsync(function(result) {
result.value; // is the officeToken of above
// do s.th. with the officeToken; e.g. send it to the server
});
});
});
在服务器上,我们现在可以获取邮件的内容。在最新版本的 Office JavaScript Api 中,这也可以直接在客户端中实现。但是,您的 Exchange Api 版本必须是 1.3。因此,这种检索 token 并将其发送到服务器的解决方案在您的 Exchange 服务器运行旧版本的情况下非常有用。
关于java - 使用 Oauth2 的 EWS java api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28424550/