当与会者取消参与我拥有的日历条目时,如何订阅推送更新?



我正在使用 EWS,我已经通过 PushSubscriptionRequest 为名为calendarDistinguishedFolderId设置了一个推送订阅。我有一个工作侦听器,它接收 EWS 发送的 SOAP 请求。

我的应用程序允许用户注册某些培训课程。当用户执行此操作时,应用程序将创建一个由应用程序的 Exchange 帐户拥有的新约会,并邀请该用户作为唯一参与者。这样,我为每个用户获得每个课程的一个约会,这确保了用户在参加实际活动之前不会相互了解。

当人们改变主意并且不想再参加时,他们应该登录应用程序并取消他们的出席。显然他们不会这样做,因为在Outlook中单击"否"要方便得多。他们认为他们不会去,但在应用程序中,他们仍然在课程中占用了宝贵的空间,因为应用程序永远不会知道他们的取消。

为了缓解这种情况,我希望我的应用程序在其中一个日历事件更改时收到通知。我已经订阅了ModifiedEvent,因为我认为这听起来很合理。

但是,我仅在应用程序创建新事件后不久收到ModifiedEvent通知。我还收到很多StatusEvent消息,因为我已将StatusFrequency设置为 1 进行测试。当我通过 Outlook 接受或不接受普通邮箱用户参加这些事件之一的邀请时,应用程序不会收到推送通知。

当有人取消参与时,我如何收到通知?

也许我使用了错误类型的事件,或者我订阅了错误的内容。

我没有包含任何代码或 SOAP 消息,因为我认为这是一个与语言无关的问题。客户端和服务器都是在Perl中实现的,并嵌入在Catalyst应用程序中,但我认为这与问题无关。

Exchange 邮箱本身可能未设置为自动确认对会议请求的响应。Exchange 中有一个邮箱级别设置来控制此行为。如果未设置,则无法通过 EWS 强制 Exchange 确认响应。

该设置在"资源计划设置"下称为"自动处理会议请求和取消"。

正确的通知类型是ModifiedEvent。当与会者改变他们的状态时,他们会被解雇。我遇到的问题是我忘记向 EWS 发送到我的应用程序的初始消息发送 SOAP 响应。然后它决定不发送任何其他东西。

最新更新