我目前正在使用新的Web技术开发Outlook插件 .
但我不清楚的是:方法 Office.context.mailbox.getCallbackTokenAsync
在桌面(Web)和iOS上的工作方式不同 . 在Web上,我得到一个解码为以下的令牌:
{
"nameid": "...",
"ver": "Exchange.Callback.V1",
"appctxsender": "https://.../core.html?button=ItemRead@0e7219f7-4c4d-47e7-b98a-7b9b9de02b80",
"appctx": {
"oid": "...",
"puid": "10033FFF8670ACD2",
"smtp": "...",
"upn": "...",
"scope": "ParentItemId:AAMkADQ2ZWI1NWUzLWFjNTgtNDhkNi05MTRlLTE0ZjkzYjhiZmIxYgBGAAAAAAAiCmOBDIX4TojSJs8PRerdBwCiXa8K4T4FToTXRfNegy16AAAAAAENAACiXa8K4T4FToTXRfNegy16AANl/D0YAAA="
},
"iss": "00000002-0000-0ff1-ce00-000000000000@0e7219f7-4c4d-47e7-b98a-7b9b9de02b80",
"aud": "00000002-0000-0ff1-ce00-000000000000/outlook.office365.com@0e7219f7-4c4d-47e7-b98a-7b9b9de02b80",
"exp": 1491917568,
"nbf": 1491917268
}
我可以成功调用EWS来获取电子邮件的附件(如:https://github.com/OfficeDev/office-js-docs/blob/master/docs/outlook/get-attachments-of-an-outlook-item.md)
然而,在iOS上,我得到的令牌看起来像这样 - 而且也无法获得ewsUrl属性 .
{
"oid": "...",
"puid": "....",
"smtp": "...",
"upn": "..",
"ver": "Exchange.Callback.V2",
"appid": "00000002-0000-0ff1-ce00-000000000000",
"deploymentid": "https://outlook.office365.com/",
"tid": "0e7219f7-4c4d-47e7-b98a-7b9b9de02b80",
"acr": "1",
"appidacr": "0",
"scp": "Mail.ReadWrite Mail.Send Calendars.ReadWrite Contacts.ReadWrite",
"iss": "https://outlook.office365.com/",
"aud": "https://outlook.office365.com",
"exp": 1491918090,
"nbf": 1491917190
}
当用作EWS的承载令牌时,此令牌不起作用,所以我的猜测是它只适用于REST Api? Exchange.Callback.V2一般只能用于REST Api吗?调用EWS和REST时的标准是什么?
当存在没有REST支持的内部部署Exchange 2016服务器时,如何支持非Office365的方案?
谢谢托比亚斯