Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Interfejs API programu Microsoft Graph udostępnia powiadomienia o zmianach dla zasobów w usługach platformy Microsoft 365, w tym microsoft Entra ID, Teams, Outlook i OneDrive. Subskrybowanie tych zdarzeń za pośrednictwem usługi Azure Event Grid umożliwia tworzenie aplikacji opartych na zdarzeniach, które reagują na zmiany zasobów w czasie rzeczywistym.
W tym artykule wyjaśniono, jak:
- Utwórz subskrypcje interfejsu API Microsoft Graph, które dostarczają zdarzenia do tematów partnerskich usługi Azure Event Grid.
- Zarządzanie cyklami życia subskrypcji przy użyciu automatycznego odnawiania.
- Kierowanie zdarzeń do wielu miejsc docelowych przy użyciu funkcji filtrowania i routingu usługi Event Grid.
Usługa Azure Event Grid oferuje kilka zalet w porównaniu z tradycyjnymi subskrypcjami interfejsu API programu Microsoft Graph opartymi na elementach webhook:
- Uproszczony routing: użyj pojedynczej subskrypcji interfejsu API programu Graph do wysyłania zdarzeń do wielu miejsc docelowych.
- Zaawansowane filtrowanie: kierowanie określonych typów zdarzeń do różnych aplikacji na podstawie właściwości zdarzenia.
- Zgodność ze standardami: odbieranie zdarzeń w formacie CloudEvents w celu lepszego współdziałania.
- Niezawodność: Wbudowana logika ponawiania prób i kolejki wiadomości nie do dostarczenia zapewniają niezawodne dostarczanie zdarzeń.
Obsługiwane źródła zdarzeń
W poniższej tabeli wymieniono źródła zdarzeń, dla których zdarzenia są dostępne za pośrednictwem interfejsu API programu Graph. W przypadku większości zasobów obsługiwane są zdarzenia ogłaszające ich tworzenie, aktualizowanie i usuwanie. Aby uzyskać szczegółowe informacje o zasobach, dla których zdarzenia są zgłaszane dla źródeł zdarzeń, zobacz obsługiwane zasoby za pomocą powiadomień o zmianie interfejsu API programu Microsoft Graph.
| Źródło zdarzeń firmy Microsoft | Zasoby | Dostępne typy zdarzeń |
|---|---|---|
| Microsoft Entra ID | Użytkownik, grupa | Typy zdarzeń Microsoft Entra ID |
| Microsoft Outlook | Wydarzenie (spotkanie kalendarza), Wiadomość (wiadomość e-mail), Kontakt | Typy zdarzeń programu Microsoft Outlook |
| Microsoft Teams | ChatMessage, CallRecord (spotkanie) | Typy zdarzeń usługi Microsoft Teams |
| OneDrive | Element dysku | Zdarzenia usługi Microsoft OneDrive |
| Microsoft SharePoint | Lista | Zdarzenia programu Microsoft SharePoint |
| Do wykonania | Zadanie do wykonania | Zdarzenia zadań do wykonania firmy Microsoft |
| Alerty zabezpieczeń | Alarm | Zdarzenia alertu zabezpieczeń firmy Microsoft |
| Drukowanie w chmurze | Drukarka, Drukuj definicję zadania | Zdarzenia drukowania w chmurze firmy Microsoft |
| Konwersacje firmy Microsoft | Konwersacja | Zdarzenia konwersacji grupowej platformy Microsoft 365 |
Utwórz subskrypcję Microsoft Graph API, aby umożliwić przepływ zdarzeń Microsoft Graph API do partnerskiego tematu. Temat partnera jest tworzony automatycznie jako część tworzenia subskrypcji Graph API. Ten temat partnera umożliwia tworzenie subskrypcji zdarzeń w celu wysyłania zdarzeń do dowolnego z obsługiwanych programów obsługi zdarzeń spełniających najlepiej wymagania dotyczące przetwarzania zdarzeń.
Ważne
Jeśli nie znasz funkcji Zdarzenia partnerskie , zobacz Omówienie zdarzeń partnerskich.
Dlaczego należy subskrybować zdarzenia ze źródeł interfejsu API programu Microsoft Graph za pośrednictwem usługi Event Grid?
Oprócz subskrybowania zdarzeń interfejsu API programu Microsoft Graph za pośrednictwem usługi Event Grid masz inne opcje odbierania podobnych powiadomień (a nie zdarzeń). Użyj interfejsu API programu Microsoft Graph, aby dostarczać zdarzenia do usługi Event Grid, jeśli spełniasz co najmniej jedno z następujących wymagań:
- Opracowujesz rozwiązanie sterowane zdarzeniami, które używa zdarzeń z identyfikatora Entra firmy Microsoft, programu Outlook lub usługi Teams w celu reagowania na zmiany zasobów. Potrzebujesz niezawodnego modelu opartego na zdarzeniach i możliwości publikowania subskrypcji oferowanych przez usługę Event Grid. Aby zapoznać się z omówieniem usługi Event Grid, zobacz Pojęcia dotyczące usługi Event Grid.
- Chcesz użyć usługi Event Grid do kierowania zdarzeń do wielu miejsc docelowych przy użyciu jednej subskrypcji interfejsu API programu Graph i chcesz uniknąć zarządzania wieloma subskrypcjami interfejsu API programu Graph.
- Zdarzenia należy kierować do różnych aplikacji podrzędnych, elementów webhook lub usług platformy Azure na podstawie niektórych właściwości zdarzenia. Na przykład możesz chcieć kierować typy zdarzeń, takie jak
Microsoft.Graph.UserCreatediMicrosoft.Graph.UserDeleteddo wyspecjalizowanej aplikacji, która przetwarza dołączanie i odłączanie użytkowników. Możesz również wysłaćMicrosoft.Graph.UserUpdatedzdarzenia do innej aplikacji, która synchronizuje informacje o kontaktach, na przykład. Można to osiągnąć przy użyciu pojedynczej subskrypcji interfejsu API programu Graph podczas korzystania z usługi Event Grid jako miejsca docelowego powiadomień. Aby uzyskać więcej informacji, zobacz filtrowanie zdarzeń i procedury obsługi zdarzeń. - Współdziałanie jest dla Ciebie ważne. Chcesz przekazywać zdarzenia i obsługiwać je w standardowy sposób przy użyciu standardu specyfikacji Cloud Native Computing Foundation (CNCF) CloudEvents .
- Doceniasz obsługę rozszerzalności, którą zapewnia CloudEvents. Na przykład w celu śledzenia zdarzeń w zgodnych systemach użyj rozszerzenia CloudEvents Distributed Tracing. Dowiedz się więcej o rozszerzeniach CloudEvents.
- Używasz sprawdzonych podejść zorientowanych na zdarzenia, przyjętych przez branżę.
Włączanie zdarzeń interfejsu API programu Graph w celu przepływu do tematu partnera
Poproś interfejs API programu Microsoft Graph o przekazywanie zdarzeń do tematu partnera usługi Event Grid, tworząc subskrypcję interfejsu API programu Graph przy użyciu zestawów SDK (Software Development Kit) interfejsu API programu Microsoft Graph i wykonując kroki opisane w linkach do przykładów podanych w tej sekcji. Zobacz Obsługiwane języki dla zestawu SDK interfejsu API programu Microsoft Graph, aby uzyskać dostępną obsługę zestawu SDK.
Ogólne wymagania wstępne
Spełnij te ogólne wymagania wstępne przed wdrożeniem aplikacji w celu utworzenia i odnowienia subskrypcji interfejsu API programu Microsoft Graph:
Zapoznaj się z ogólnymi krokami subskrybowania zdarzeń partnerskich. Zgodnie z opisem w tym artykule przed utworzeniem subskrypcji interfejsu API programu Graph należy postępować zgodnie z instrukcjami podanymi w temacie:
Zarejestruj dostawcę zasobów usługi Event Grid w ramach subskrypcji platformy Azure.
Autoryzowanie interfejsu API programu Microsoft Graph (partnera) w celu utworzenia tematu partnera w grupie zasobów.
Masz działającą wiedzę na temat powiadomień interfejsu API programu Microsoft Graph. W ramach nauki możesz użyć Eksploratora interfejsu API programu Graph do tworzenia subskrypcji interfejsu API programu Graph.
Omówienie pojęć związanych ze zdarzeniami partnerskimi.
Zidentyfikuj zasób interfejsu API programu Microsoft Graph, z którego chcesz otrzymywać zdarzenia zmiany stanu systemu. Aby uzyskać więcej informacji, zobacz Powiadomienia o zmianie interfejsu API programu Microsoft Graph. Na przykład w celu śledzenia zmian użytkowników w identyfikatorze Entra firmy Microsoft należy użyć zasobu użytkownika . Użyj grupy do śledzenia zmian w grupach użytkowników.
Posiadanie konta administratora dzierżawy w dzierżawie platformy Microsoft 365. Uzyskaj bezpłatne konto dewelopera, dołączając do Programu Deweloperów Microsoft 365.
Inne wymagania wstępne specyficzne dla wybranego języka programowania i środowiska programistycznego używanego w linkach przykładów interfejsu API programu Microsoft Graph można znaleźć w poniższej sekcji.
Ważne
Szczegółowe instrukcje dotyczące implementowania aplikacji znajdują się w sekcjach przykładów ze szczegółowymi instrukcjami , ale należy przeczytać wszystkie sekcje tego artykułu, ponieważ zawierają one więcej, ważne informacje dotyczące przekazywania zdarzeń interfejsu API programu Microsoft Graph przy użyciu usługi Event Grid.
Jak utworzyć subskrypcję interfejsu API programu Microsoft Graph
Podczas tworzenia subskrypcji interfejsu API programu Graph zostanie utworzony temat partnera. Aby określić temat partnera, który ma zostać utworzony i skojarzony z nową subskrypcją interfejsu API programu Graph, należy przekazać następujące informacje w elemencie notificationUrl parametrów:
- nazwa tematu partnera
- nazwa grupy zasobów, w której jest tworzony temat partnera
- region (lokalizacja)
- Subskrypcja platformy Azure
Te przykłady kodu pokazują, jak utworzyć subskrypcję interfejsu API programu Graph. Obejmują one przykłady tworzenia subskrypcji do odbierania zdarzeń od wszystkich użytkowników w dzierżawie Microsoft Entra ID, gdy są tworzone, aktualizowane lub usuwane.
POST https://graph.microsoft.com/v1.0/subscriptions
Content-type: application/json
{
"changeType": "Updated,Deleted,Created",
"notificationUrl": "EventGrid:?azuresubscriptionid=8A8A8A8A-4B4B-4C4C-4D4D-12E12E12E12E&resourcegroup=yourResourceGroup&partnertopic=yourPartnerTopic&location=theNameOfAzureRegionFortheTopic",
"lifecycleNotificationUrl": "EventGrid:?azuresubscriptionid=8A8A8A8A-4B4B-4C4C-4D4D-12E12E12E12E&resourcegroup=yourResourceGroup&partnertopic=yourPartnerTopic&location=theNameOfAzureRegionFortheTopic",
"resource": "users",
"expirationDateTime": "2024-03-31T00:00:00Z",
"clientState": "secretClientValue"
}
-
changeType: rodzaj zmian zasobów, dla których chcesz odbierać zdarzenia. Prawidłowe wartości:Updated,DeletediCreated. Można określić jedną lub więcej z tych wartości rozdzielonych przecinkami. -
notificationUrl: identyfikator URI używany do definiowania tematu partnera, do którego są wysyłane zdarzenia. Musi być zgodny z następującym wzorcem:EventGrid:?azuresubscriptionid=<you-azure-subscription-id>&resourcegroup=<your-resource-group-name>&partnertopic=<the-name-for-your-partner-topic>&location=<the-Azure-region-name-where-you-want-the-topic-created>. Lokalizację (znaną również jako region świadczenia usługi Azure)namemożna uzyskać, wykonując polecenie az account list-locations . Nie używaj nazwy wyświetlanej lokalizacji. Na przykład nie używaj zachodnich środkowych stanów USA. Użycie w zamian parametruwestcentralus.az account list-locations -
lifecycleNotificationUrl: identyfikator URI używany do definiowania tematu partnera, do któregomicrosoft.graph.subscriptionReauthorizationRequiredsą wysyłane zdarzenia. To zdarzenie sygnalizuje, że subskrypcja interfejsu API programu Graph wkrótce wygaśnie. Identyfikator URI jest zgodny z tym samym wzorcem co element notificationUrl opisany wcześniej, jeśli używasz usługi Event Grid jako miejsca docelowego do zdarzeń cyklu życia. W takim przypadku temat partnera powinien być taki sam jak temat określony w elemencie notificationUrl. - resource: zasób, który generuje zdarzenia, które ogłaszają zmiany stanu.
- expirationDateTime: czas wygaśnięcia subskrypcji i zatrzymanie przepływu zdarzeń. Musi być zgodny z formatem określonym w żądaniu zmiany (RFC) 3339. Musisz określić czas wygaśnięcia, który mieści się w zakresie maksymalnej długości subskrypcji dozwolonej dla typu zasobu.
- stan klienta. Ta właściwość jest opcjonalna. Służy do weryfikacji wywołań aplikacji obsługi zdarzeń podczas dostarczania zdarzeń. Aby uzyskać więcej informacji, zobacz Właściwości subskrypcji interfejsu API programu Graph.
Ważne
Nazwa tematu partnera musi być unikatowa w tym samym regionie świadczenia usługi Azure. Każda kombinacja identyfikatora aplikacji dzierżawy może tworzyć maksymalnie 10 unikatowych tematów partnerów.
Podczas opracowywania rozwiązania należy pamiętać o pewnych limitach usługi interfejsu API programu Graph.
Istniejące subskrypcje interfejsu API programu Graph bez
lifecycleNotificationUrlwłaściwości nie odbierają zdarzeń cyklu życia. Aby dodać właściwość lifecycleNotificationUrl, należy usunąć istniejącą subskrypcję i utworzyć nową subskrypcję określającą właściwość podczas tworzenia subskrypcji.
Po utworzeniu subskrypcji interfejsu API programu Graph masz temat partnera utworzony na platformie Azure.
Odnawianie subskrypcji interfejsu API programu Microsoft Graph
Odnów subskrypcję interfejsu Graph API zanim wygaśnie, żeby nie doszło do zatrzymania przepływu zdarzeń. Aby zautomatyzować proces odnawiania, interfejs API Microsoft Graph obsługuje zdarzenia powiadomień cyklu życia, na które aplikacje mogą się zapisać. Obecnie wszystkie typy zasobów interfejsu API programu Microsoft Graph obsługują microsoft.graph.subscriptionReauthorizationRequiredelement , który jest wysyłany, gdy wystąpi dowolny z następujących warunków:
- Token dostępu wkrótce wygaśnie.
- Subskrypcja interfejsu API programu Graph wkrótce wygaśnie.
- Administrator dzierżawy odwołał uprawnienia aplikacji do odczytu zasobu.
Jeśli subskrypcja interfejsu API programu Graph nie zostanie odnowiona po wygaśnięciu, utwórz nową subskrypcję interfejsu API programu Graph. Zapoznaj się z tym samym tematem partnera używanym w wygasłej subskrypcji, jeśli subskrypcja wygasła mniej niż 30 dni temu. Jeśli subskrypcja interfejsu API programu Graph wygasła przez ponad 30 dni, nie możesz ponownie użyć istniejącego tematu partnera. W takim przypadku należy określić inną nazwę tematu partnera. Alternatywnie możesz usunąć istniejący temat partnera, aby utworzyć nowy temat partnera o tej samej nazwie podczas tworzenia subskrypcji interfejsu API programu Graph.
Jak odnowić subskrypcję interfejsu API programu Microsoft Graph
Po otrzymaniu microsoft.graph.subscriptionReauthorizationRequired zdarzenia aplikacja powinna odnowić subskrypcję interfejsu API programu Graph, wykonując następujące akcje:
Jeśli wpis tajny klienta został podany we właściwości clientState podczas tworzenia subskrypcji interfejsu API programu Graph, klucz tajny klienta dołączony do zdarzenia. Sprawdź, czy wartość clientState zdarzenia jest zgodna z wartością użytą podczas tworzenia subskrypcji interfejsu API programu Graph.
Upewnij się, że aplikacja ma prawidłowy token dostępu, aby wykonać następny krok. Więcej informacji znajduje się w kolejnych przykładach z szczegółową sekcją instrukcji .
Wywołaj jeden z następujących dwóch interfejsów API. Jeśli wywołanie interfejsu API powiedzie się, przepływ powiadomień o zmianie zostanie wznowione.
Wywołaj
/reauthorizeakcję, aby ponownie uwierzytelnić subskrypcję bez rozszerzania daty wygaśnięcia.POST https://graph.microsoft.com/beta/subscriptions/{id}/reauthorizeWykonaj regularną akcję "odnów", aby ponownie uwierzytelnić i odnowić subskrypcję w tym samym czasie.
PATCH https://graph.microsoft.com/beta/subscriptions/{id} Content-Type: application/json { "expirationDateTime": "2024-04-30T11:00:00.0000000Z" }Odnawianie może zakończyć się niepowodzeniem, jeśli aplikacja nie ma już autoryzacji dostępu do zasobu. Może to być konieczne, aby aplikacja uzyskała nowy token dostępu, aby pomyślnie ponownie uwierzytelnić subskrypcję.
Wyzwania związane z autoryzacją nie zastępują potrzeby odnowienia subskrypcji przed jej wygaśnięciem. Cykle życia tokenów dostępu i wygasania subskrypcji nie są takie same. Token dostępu może wygasnąć przed subskrypcją. Ważne jest, aby przygotować się do regularnego ponownego uwierzytelniania punktu końcowego w celu odświeżenia tokenu dostępu. Ponowne uwierzytelnianie punktu końcowego nie odnawia subskrypcji. Jednak odnowienie subskrypcji również ponownie uwierzytelnia punkt końcowy.
Podczas odnawiania i/lub ponownego uwierzytelniania subskrypcji interfejsu API programu Graph ten sam temat partnera określony podczas tworzenia subskrypcji jest używany.
Podczas określania nowej daty wygaśnięciaDateTime upewnij się, że jest to co najmniej trzy godziny od bieżącego czasu. W przeciwnym razie aplikacja może odbierać microsoft.graph.subscriptionReauthorizationRequired zdarzenia wkrótce po odnowieniu.
Przykłady dotyczące ponownego uwierzytelniania subskrypcji interfejsu API programu Graph przy użyciu dowolnego z obsługiwanych języków można znaleźć w temacie Żądanie ponownego uwierzytelniania subskrypcji.
Aby zapoznać się z przykładami dotyczącymi odnawiania i ponownego uwierzytelniania subskrypcji interfejsu API programu Graph przy użyciu dowolnego z obsługiwanych języków, zobacz żądanie aktualizacji subskrypcji.
Przykłady ze szczegółowymi instrukcjami
Dokumentacja interfejsu API programu Microsoft Graph zawiera przykłady kodu z instrukcjami:
- Skonfiguruj środowisko deweloperskie z określonymi instrukcjami zgodnie z używanym językiem. Instrukcje obejmują również sposób uzyskiwania dzierżawy platformy Microsoft 365 na potrzeby programowania.
- Tworzenie subskrypcji interfejsu API programu Graph. Aby odnowić subskrypcję, możesz wywołać interfejs API programu Graph przy użyciu fragmentów kodu w temacie Jak odnowić subskrypcję interfejsu API programu Graph.
- Uzyskiwanie tokenów uwierzytelniania w celu ich używania podczas wywoływania interfejsu API programu Microsoft Graph.
Uwaga
Istnieje możliwość utworzenia subskrypcji interfejsu API programu Graph przy użyciu Eksploratora interfejsu API programu Microsoft Graph. Nadal należy używać przykładów dla innych ważnych aspektów rozwiązania, takich jak uwierzytelnianie i odbieranie zdarzeń.
Przykłady aplikacji internetowych są dostępne dla następujących języków:
- Przykład języka C#. Jest to aktualny przykład, który zawiera sposób tworzenia i odnawiania subskrypcji interfejsu API programu Graph oraz przeprowadzi Cię przez niektóre kroki umożliwiające przepływ zdarzeń.
- Przykład języka Java
- Node.js przykład.
Ważne
Musisz aktywować temat partnera utworzony w ramach tworzenia subskrypcji interfejsu API programu Graph. Należy również utworzyć subskrypcję zdarzeń usługi Event Grid w aplikacji internetowej w celu odbierania zdarzeń. W tym celu użyjesz adresu URL skonfigurowanego w aplikacji internetowej do odbierania zdarzeń jako punktu końcowego elementu webhook w ramach subskrypcji zdarzeń.
Ważne
Potrzebujesz przykładowego kodu dla innego języka lub masz pytania? Wyślij wiadomość e-mail na adres .ask-graph-and-grid@microsoft.com
Treści powiązane
Wykonaj następujące dwa kroki, aby skonfigurować odbieranie zdarzeń interfejsu API programu Microsoft Graph przy użyciu usługi Event Grid:
- Aktywuj temat partnera utworzony podczas konfigurowania interfejsu API programu Microsoft Graph.
- Subskrybuj zdarzenia poprzez utworzenie subskrypcji zdarzenia dla tematu partnera.