NoO*_*One 2 .net email outlook microsoft-graph
我正在使用Microsoft.Graph
nuget软件包(版本1.6.2),并且尝试将电子邮件标记为已读。这是代码:
msg.IsRead = true;
await MainPage.GraphServiceClient.Me.Messages[msg.Id].Request().Select("IsRead").UpdateAsync(msg);
Run Code Online (Sandbox Code Playgroud)
据我了解,以上代码仅应将该IsRead
属性发送到服务器以进行更新。但是,执行此操作后,将发送整个消息对象(我已经使用Fiddler进行了验证),您将收到以下响应:
{
"error": {
"code": "ErrorInvalidPropertyUpdateSentMessage",
"message": "Update operation is invalid for property of a sent message.",
"innerError": {
"request-id": "<A guid here that I wont share>",
"date": "2017-07-29T21:10:18"
}
}
}
Run Code Online (Sandbox Code Playgroud)
代码正确吗,这是一个错误,我是否缺少某些内容或内容?有没有解决的办法?
我自己也遇到了同样的问题,我刚刚遇到了您的问题。
我经过几次尝试后发现,尝试更新(PATCH)不允许更新的字段时会出现问题。
在您的情况下,在我的情况下,问题都在于,我们将msg
对象的所有字段发送给了该对象,而不仅仅是修补和修改的字段。
代替执行以下操作:
var msg = await MainPage.GraphServiceClient.Me.Messages[imapMessage.MessageId].Request().GetAsync();
msg.IsRead = true;
await MainPage.GraphServiceClient.Me.Messages[msg.Id].Request().Select("IsRead").UpdateAsync(msg);
Run Code Online (Sandbox Code Playgroud)
首先,您应该只获得IsRead属性,
从GraphAPI 1.9版本开始更新,我们只需要发送更新的属性,而不发送只读属性。
await MainPage.GraphServiceClient.Me.Messages[msg.Id].Request().Select("IsRead").UpdateAsync(new Message {IsRead = true});
Run Code Online (Sandbox Code Playgroud)
希望它仍能以任何方式释放您。
归档时间: |
|
查看次数: |
807 次 |
最近记录: |