Отсутствие уведомления об изменении календарных событий, содержащих настраиваемые свойства

Мы хотим получать уведомления об изменениях из календарей Outlook наших пользователей. Мы хотели бы ограничить эти уведомления только теми элементами календаря, которые содержат наше настраиваемое свойство.

КОД, СОЗДАВАЮЩИЙ КАЛЕНДАРНОЕ СОБЫТИЕ

private static async Task<Event> CreateAppointmentAsync(GraphServiceClient graphClient)
{

    var newEvent = new Microsoft.Graph.Event
    {
        Subject = "Test Calendar Appointmnt",
        Start = new DateTimeTimeZone() { TimeZone = TimeZoneInfo.Local.Id, DateTime = "2020-11-21T21:00:00" },
        End = new DateTimeTimeZone() { TimeZone = TimeZoneInfo.Local.Id, DateTime = "2020-11-21T22:00:00" },
        Location = new Location() { DisplayName = "Somewhere" },
        Body = new ItemBody { Content = "Some Random Text" },

    };

    Microsoft.Graph.Event addedEvent;
    try
    {
        newEvent.SingleValueExtendedProperties = new EventSingleValueExtendedPropertiesCollectionPage();
        newEvent.SingleValueExtendedProperties.Add(new SingleValueLegacyExtendedProperty { Id = "String {00020329-0000-0000-C000-000000000046} Name CompanyID", Value = "12345" });


        addedEvent = await graphClient.Me.Calendar.Events.Request().AddAsync(newEvent);

   

    }
    catch (Exception e)
    {
        throw e;
    }


    return addedEvent;

  

}

ИНФОРМАЦИЯ КОДА ПОДПИСКИ

var subscription = new Subscription
{
    ChangeType = "created",
    NotificationUrl ="<OUR-URL>",                                   
    Resource = "me/events/?$filter=singleValueExtendedProperties/any(ep: ep/id eq 'String {00020329-0000-0000-C000-000000000046} Name CompanyID' and ep/value ne null)",
    ExpirationDateTime = DateTimeOffset.Parse("2020-11-13T18:23:45.9356913Z"),
    ClientState = "custom_data_state",
    LatestSupportedTlsVersion = "v1_2"
};

Подписка успешно создана, но уведомления не отправляются для тех элементов, которые содержат определенное настраиваемое свойство, описанное выше.


person ezG    schedule 13.11.2020    source источник
comment
@ Shiva-MSFTIdentity, согласно этому сообщению Получать события, у которых есть настраиваемые свойства, установленные надстройкой, возможна фильтрация уведомлений на основе настраиваемых событий. Разве это невозможно для календарных событий?   -  person ezG    schedule 13.11.2020


Ответы (1)


Оказывается, я только записывал созданное уведомление. Я забыл добавить обновленное и удаленное.

Я тестировал событие, которое уже было в моем календаре. События не запускались, потому что я не создавал подписку для обнаружения обновлений и удалений.

Вот исправленная подписка:

var subscription = new Subscription
{
    ChangeType = "created,updated,deleted",
    NotificationUrl ="<OUR-URL>",                                   
    Resource = "me/events/?$filter=singleValueExtendedProperties/any(ep: ep/id eq 'String {00020329-0000-0000-C000-000000000046} Name CompanyID' and ep/value ne null)",
    ExpirationDateTime = DateTimeOffset.Parse("2020-11-13T18:23:45.9356913Z"),
    ClientState = "custom_data_state",
    LatestSupportedTlsVersion = "v1_2"
};
person ezG    schedule 13.11.2020