2017-07-10 26 views
1

我正在與EWS合作,並且我已經通過PushSubscriptionRequest建立了推送訂閱,致電DistinguishedFolderId,名爲calendar。我有一個工作監聽器接收EWS發送的SOAP請求。當與會者取消參與我自己的日曆條目時,我如何訂閱推送更新?

我的應用程序允許用戶註冊一些培訓課程。當用戶這樣做時,應用程序會創建一個由應用程序的Exchange帳戶擁有的新約會,並邀請用戶作爲唯一參與者。通過這種方式,我爲每個課程的每位用戶預約一次,這樣可以確保用戶在參加實際活動之前不會了解彼此。

當人們改變主意,不想再參加時,他們應該登錄申請並取消他們的出席。顯然他們不這樣做,因爲在Outlook中點擊「否」會更加方便。他們認爲他們不會去,但在應用程序中,他們仍然在課程中佔用了寶貴的空間,因爲應用程序從來不知道他們的取消。

爲了緩解這種情況,我希望我的應用在其中一個日曆事件發生變化時得到通知。我訂閱了ModifiedEvent,因爲我認爲這聽起來很合理。

但是,我只在應用程序創建新事件後不久收到ModifiedEvent通知。我還收到很多StatusEvent消息,因爲我已將StatusFrequency設置爲1進行測試。當我通過Outlook接受或不接受使用普通郵箱用戶接受其中一個事件的邀請時,應用程序不會收到推送通知。

當有人取消參與時,我該如何得到通知?

也許我使用的是錯誤類型的事件,或者我訂閱了錯誤的東西。

我沒有包含任何代碼或SOAP消息,因爲我認爲這是一個語言不可知的問題。客戶端和服務器都使用Perl實現,並嵌入到Catalyst應用程序中,但我認爲這與問題無關。

回答

0

正確的通知類型是ModifiedEvent。當與會者改變其狀態時,他們會被解僱。我遇到的問題是我忘記了將SOAP響應發送給EWS發送給我的應用程序的初始消息。然後決定不發送其他任何東西。

1

Exchange郵箱本身可能未設置爲自動確認對會議請求的響應。 Exchange中有一個郵箱級別設置可控制此行爲。如果沒有設置,那麼EWS無法強制Exchange確認響應。

該設置被稱爲在資源調度設置下自動處理會議請求和取消

+0

這聽起來非常有效。儘管我的應用程序的用戶帳戶沒有OWA角色(/權限)。這是管理員可以爲我配置的東西,還是我應該讓他們勾選任何方框讓我登錄OWA以自己更改該設置? – simbabque

+0

我不是100%確定的,但我認爲你應該讓管理員給你完全的編輯權限來改變你自己的設置。這篇文章(https://msonlinehelpdesk.zendesk.com/hc/en-us/articles/200561507-How-do-I-change-resource-conference-room-scheduling-options-in-Office-365-)可能會給你一些指導。 – MadDev

+0

這個確切的設置在我們的OWA中不存在。有一個可以在接受邀請時自動刪除更新,另一個用於刪除已取消的邀請。不過,我找到了解決方案,並會很快寫出答案。我忘了將SOAP響應發送給EWS並取消訂閱。 – simbabque

相關問題