2016-11-03 12 views
1

イムに複数のポストを得て、私が作ったマイクロソフトグラフウェブフック/購読、マイクロソフトグラフを通じてカレンダーイベントにプッシュ通知を受信しようとしている私のnotificationUrl

サブスクリプションがありNodeJS上で実行されているWebサービスへ

notificationURLポイントこれらのオプション。

{ 
    "changeType": "created,updated,deleted", 
    "notificationUrl": "myurl", 
    "resource": "users/userid/events?$filter=sensitivity%20eq%20%27Normal%27", 
    "expirationDateTime":"2016-11-05T18:23:45.9356913Z", 
    "clientState": "customclientstate" 
} 

は、しかし、単一のイベントが変更されるたびに、サブスクリプション(それらのすべてが同一の本体を有する)からの複数のPOSTコール(〜4 2)を取得イム。

1つのサブスクリプションアクティブ、1つのカレンダーしかありません。コンテンツがなくてもステータスコード204の要求に応答しています(郵便配達員でテスト済み)。

そのDBを更新イム以来、大きな問題要求が入ってきたときに。

は、誰もがこの問題に遭遇していますか? iveは何の結果も得ずにすべてを見ていました。

すべての入力を非常に感謝します! =)。

+0

あなたが見ている問題を再現することはできません。作成イベントまたは更新イベントで複数の通知を受け取りましたか? subscriptionIdとchangeTypeプロパティーを見て、通知のペイロードが同一かどうか確認できますか?イベントを削除すると2つの通知がトリガーされ、1つは更新され、1つは削除されます。 同じnotificationUrlを共有する2つ以上のサブスクリプションを作成した可能性があります。 –

+0

複数のイベントの受信IDが同じです。私は作成と更新の両方で複数の通知を受け取ります。私はそれが同じnotificationURLで2つのサブスクリプションを持つケースだと思ったが、すべてのサブスクリプションを削除した後、通知を受け取ることができなかったことを確認した後、 –

答えて

0

私はこの同じ問題があります。オフィスカレンダーで新しいイベントを作成するときは、毎回ChangeType: Createdという通知と、同時にChangeType: Updatedという3つの通知を受け取ります。私がオフィスでイベントをキャンセルするときは、常に3回更新された通知と最後に1 x ChangeType: Deletedが得られます。

ここでできることは、ChangeKey検証を使用することです。オフィスから新しい通知を受けるたびにAPIからそのイベントをリクエストする必要があります。

イベントを取得したら、event.ChangeKeyプロパティが変更されたかどうかを確認できます。

ウェブサイトのetagと同じことです。コンテンツが変更されると、エタグハッシュが変更されます。

Created通知が届いたら、そのイベントのChangeKeyをArrayまたはdbに保存し、通知またはイベントIDが配列またはdbで既に存在し、ChangeKeyが変更されているかどうかを覚えておいてください。 ChangeKeyが前回と同じ場合は、そのイベントをdbで更新する必要はありません。

これは、発生したイベントが1つでもSeriesMasterイベントのChangeKeyも変更された場合、定期的なイベントでも機能します。

関連する問題