无法发送PATCH请求以在MAC Outlook客户端中设置扩展属性
我正在开发用于MAC Outlook客户端的Office加载项。我试图发送PATCH请求来设置MAC Outlook客户端的扩展属性,但它不起作用。执行下面的代码后没有响应。下面的代码片段适用于MAC Safari浏览器和Windows桌面/浏览器。你有什么主意吗?无法发送PATCH请求以在MAC Outlook客户端中设置扩展属性
注意:用您的电子邮件ID替换XXXX。电子邮件ID可以通过outlook rest api沙盒检索。 https://oauthplay.azurewebsites.net/或通过Office.js Office.Context.Mailbox.Item.itemId https://dev.office.com/reference/add-ins/outlook/1.5/Office.context.mailbox.item?product=outlook&version=v1.5
function setFlag() {
var options = {
isRest: true,
};
Office.context.mailbox.getCallbackTokenAsync(options, cb);
}
function cb(asyncResult) {
var token = asyncResult.value;
setEmailFlagByToken(token);
}
function setEmailFlagByToken(accessToken) {
var getMessageUrl = 'https://outlook.com/api/beta/me/messages/XXXX'
$.ajax({
url: getMessageUrl,
dataType: 'json',
contentType:"application/json",
type:'PATCH',
data: "{'Flag':{'FlagStatus':'Flagged'}}",
headers: { 'Authorization': 'Bearer ' + accessToken }
}).done(function(data){
//Succeeded
}).fail(function(error){
// Handle error
});
}
Updated XML Manifest file:
<?xml version="1.0" encoding="UTF-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="MailApp">
<Id>47837963-11df-469e-a84e-661070c8217c</Id>
<Version>1.0.0.0</Version>
<ProviderName>[Provider name]</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="OfficeAddIn" />
<Description DefaultValue="OfficeAddIn"/>
<Hosts>
<Host Name="Mailbox" />
</Hosts>
<Requirements>
<Sets>
<Set Name="MailBox" MinVersion="1.1" />
</Sets>
</Requirements>
<FormSettings>
<Form xsi:type="ItemRead">
<DesktopSettings>
<SourceLocation DefaultValue="https://mailapppoc2.azurewebsites.net/AddInRead/Home/Home.html"/>
<RequestedHeight>250</RequestedHeight>
</DesktopSettings>
</Form>
</FormSettings>
<Permissions>ReadWriteMailbox</Permissions>
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Read" />
</Rule>
<DisableEntityHighlighting>false</DisableEntityHighlighting>
</OfficeApp>
休息令牌使REST调用在MAC Outlook客户端支持为1.5 API的一部分。请确保您在提出请求时使用最新的Outlook二进制文件。在较旧的二进制文件中,此支持不存在。此前,它只会提供EWS令牌,这将使您只能发出ews请求。内幕快速程序用户可以获得支持该功能的二进制文件。
这篇文章不是一个实际的尝试来回答这个问题。请注意[StackOverflow不像讨论区](http://stackoverflow.com/tour),它是一个问答网站,每个帖子都是问题或问题的答案。帖子也可以有[评论](http://stackoverflow.com/help/privileges/comment) - 这样的小句子 - 可以用来批评或请求作者澄清。这应该是一个评论或[新问题](http://stackoverflow.com/questions/ask) –
@deepak,我的MAC Outlook客户端版本是15.33(170409),你认为它会工作? – ChrisBao
不,170409没有这种支持,你需要更新构建。此功能已作为Outlook for Mac的Insider快速程序的一部分发布。如果你不是内部快速程序的一部分,请注册。 – deepak
现在通过安装Office Inside Fast修复了该问题,并在9/2/2017更新了安装位,该安装位修复了此问题。 @deepak – ChrisBao