Partager via


team : sendActivityNotification

Espace de noms: microsoft.graph

Envoyer une notification de flux d’activité dans l’étendue d’une équipe. Pour plus d’informations sur l’envoi de notifications et les conditions requises, consultez Envoi de notifications d’activité Teams.

Cette API est disponible dans les déploiements de cloud national suivants.

Service global Gouvernement des États-Unis L4 Us Government L5 (DOD) Chine gérée par 21Vianet

Autorisations

Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.

Type d’autorisation Autorisations avec privilèges minimum Autorisations privilégiées plus élevées
Déléguée (compte professionnel ou scolaire) TeamsActivity.Send Non disponible.
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application TeamsActivity.Send.Group TeamsActivity.Send

Remarque

L’autorisation TeamsActivity.Send.Group utilise le consentement spécifique à la ressource.

Requête HTTP

POST /teams/{teamId}/sendActivityNotification

En-têtes de demande

Nom Description
Autorisation Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation.
Content-Type application/json. Obligatoire.

Corps de la demande

Dans le corps de la demande, fournissez une représentation JSON des paramètres.

Le tableau suivant indique les paramètres utilisables avec cette action.

Paramètre Type Description
topic teamworkActivityTopic Rubrique de la notification. Spécifie la ressource dont il est question.
activityType Chaîne Le type d’activité doit être déclaré dans le manifeste de l’application Teams, à l’exception du systemDefaulttype d’activité Réservée, qui fournit du texte de forme libre dans la Actor+Reason ligne de la notification.
chainId Int64 Optional. ID de chaîne de la notification. Utilisé pour remplacer une notification précédente. Utilisez la même chainId chose dans les requêtes suivantes pour remplacer la notification précédente.
previewText itemBody Texte d’aperçu de la notification. Microsoft Teams affiche les 150 premiers caractères.
templateParameters Collection keyValuePair Valeurs des variables de modèle définies dans l’entrée de flux d’activité correspondant à activityType dans le manifeste de l’application Teams.
destinataire teamworkNotificationRecipient Destinataire de la notification. Pour plus d’informations, consultez aadUserNotificationRecipient, channelMembersNotificationRecipient et teamMembersNotificationRecipient.
teamsAppId String Facultatif. ID d’application Teams de l’application Teams associée à la notification. Permet de lever l’ambiguïté des applications installées lorsque plusieurs applications avec le même ID Microsoft Entra ID sont installées pour le même utilisateur destinataire. Évitez de partager les ID d’application Microsoft Entra entre les applications Teams.

Les ressources suivantes sont prises en charge lors de la définition de la source valeur de la propriété de rubrique sur entityUrl:

Note: L’URL de l’entité doit être la même ressource ou la ressource enfant de l’équipe dans l’URL. En outre, l’application Teams doit être installée dans l’équipe.

Réponse

Si elle réussit, cette action renvoie un code de réponse 204 No Content.

Exemples

Exemple 1 : Informer un utilisateur des demandes d’approbation financière en attente

Cet exemple montre comment envoyer une notification de flux d’activité pour une équipe. Cet exemple avertit le propriétaire de l’équipe des demandes d’approbation financière en attente.

Demande

POST https://graph.microsoft.com/v1.0/teams/{teamId}/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/teams/{teamId}"
    },
    "activityType": "pendingFinanceApprovalRequests",
    "previewText": {
        "content": "Internal spending team has a pending finance approval requests"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        "userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    },
    "templateParameters": [
        {
            "name": "pendingRequestCount",
            "value": "5"
        }
    ] 
}

Réponse

HTTP/1.1 204 No Content

Exemple 2 : Avertir un utilisateur d’un onglet de canal

Comme dans l’exemple précédent, cet exemple utilise entityUrl pour .topic Toutefois, cet exemple établit un lien vers un onglet dans un canal. L’onglet héberge une page indiquant à l’utilisateur l’état de sa réservation d’hôtel. La sélection de la notification amène l’utilisateur à l’onglet, où il peut vérifier sa réservation.

Demande

POST https://graph.microsoft.com/v1.0/teams/{teamId}/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/teams/{teamId}/channels/{channelId}/tabs/{tabId}"
    },
    "activityType": "reservationUpdated",
    "previewText": {
        "content": "You have moved up the queue"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        "userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    },
    "templateParameters": [
        {
            "name": "reservationId",
            "value": "TREEE433"
        },
        {
            "name": "currentSlot",
            "value": "23"
        }
    ]
}

Réponse

HTTP/1.1 204 No Content

Exemple 3 : Avertir un utilisateur d’un onglet de canal à l’aide du nom d’utilisateur principal

Comme dans l’exemple précédent, cet exemple utilise entityUrl pour .topic Toutefois, cet exemple établit un lien vers un onglet dans un canal. L’onglet héberge une page indiquant à l’utilisateur l’état de sa réservation d’hôtel. La sélection de la notification amène l’utilisateur à l’onglet, où il peut vérifier sa réservation.

Demande

POST https://graph.microsoft.com/v1.0/teams/{teamId}/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/teams/{teamId}/channels/{channelId}/tabs/{tabId}"
    },
    "activityType": "reservationUpdated",
    "previewText": {
        "content": "You have moved up the queue"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        "userId": "jacob@contoso.com"
    },
    "templateParameters": [
        {
            "name": "reservationId",
            "value": "TREEE433"
        },
        {
            "name": "currentSlot",
            "value": "23"
        }
    ]
}

Réponse

HTTP/1.1 204 No Content

Exemple 4 : Informer un utilisateur d’un événement à l’aide d’une rubrique personnalisée

Comme indiqué dans les exemples précédents, vous pouvez établir un lien vers différents aspects de l’équipe. Toutefois, si vous souhaitez créer un lien vers un aspect qui ne fait pas partie de l’équipe ou qui n’est pas représenté par Microsoft Graph, ou si vous souhaitez personnaliser le nom, vous pouvez définir la source du topic sur text et lui transmettre une valeur personnalisée. webUrl est requis lors de la définition de topic source sur text.

Demande

POST https://graph.microsoft.com/v1.0/teams/{teamId}/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "text",
        "value": "Deployment Approvals Channel",
        "webUrl": "https://teams.microsoft.com/l/message/19:448cfd2ac2a7490a9084a9ed14cttr78c@thread.skype/1605223780000?tenantId=c8b1bf45-3834-4ecf-971a-b4c755ee677d&groupId=d4c2a937-f097-435a-bc91-5c1683ca7245&parentMessageId=1605223771864&teamName=Approvals&channelName=Azure%20DevOps&createdTime=1605223780000"
    },
    "activityType": "deploymentApprovalRequired",
    "previewText": {
        "content": "New deployment requires your approval"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        "userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    },
    "templateParameters": [
        {
            "name": "deploymentId",
            "value": "6788662"
        }
    ]
}

Réponse

HTTP/1.1 204 No Content

Exemple 5 : Informer les membres de l’équipe des demandes d’approbation financière en attente

L’exemple suivant montre comment envoyer une notification de flux d’activité à tous les membres de l’équipe. Cet exemple est similaire aux exemples précédents. Toutefois, dans ce cas, le destinataire est un teamMembersNotificationRecipient. Le teamId spécifié dans le destinataire doit correspondre à teamId spécifié dans l’URL de la requête.

Note: La possibilité d’envoyer des notifications à tous les membres de l’équipe est limitée aux équipes de 10 000 membres ou moins. Si l’équipe dépasse 10 000 membres, aucun membre de l’équipe ne reçoit de notification.

Demande

L’exemple suivant illustre la demande.

POST https://graph.microsoft.com/v1.0/teams/e8bece96-d393-4b9b-b8da-69cedef1a7e7/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/teams/e8bece96-d393-4b9b-b8da-69cedef1a7e7"
    },
    "activityType": "pendingFinanceApprovalRequests",
    "previewText": {
        "content": "Internal spending team has a pending finance approval requests"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.teamMembersNotificationRecipient",
        "teamId": "e8bece96-d393-4b9b-b8da-69cedef1a7e7"
    },
    "templateParameters": [
        {
            "name": "pendingRequestCount",
            "value": "5"
        }
    ] 
}

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 204 No Content

Exemple 6 : Informer les membres du canal des demandes d’approbation financière en attente

L’exemple suivant montre comment envoyer une notification de flux d’activité à tous les membres du canal. Cet exemple est similaire à l’exemple précédent. Toutefois, dans ce cas, le destinataire est un channelMembersNotificationRecipient. Le teamId spécifié dans le destinataire doit correspondre à teamId spécifié dans l’URL de la requête.

Demande

L’exemple suivant illustre la demande.

POST https://graph.microsoft.com/v1.0/teams/e8bece96-d393-4b9b-b8da-69cedef1a7e7/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/teams/e8bece96-d393-4b9b-b8da-69cedef1a7e7"
    },
    "activityType": "pendingFinanceApprovalRequests",
    "previewText": {
        "content": "Internal spending team has a pending finance approval requests"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.channelMembersNotificationRecipient",
        "teamId": "e8bece96-d393-4b9b-b8da-69cedef1a7e7",
        "channelId": "19:3d61a2309f094f4a9310b20f1db37520@thread.tacv2"
    },
    "templateParameters": [
        {
            "name": "pendingRequestCount",
            "value": "5"
        }
    ] 
}

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 204 No Content

Exemple 7 : Avertir des demandes d’approbation financière en attente dans l’emplacement de réponse de message de canal

Comme dans l’exemple précédent, cet exemple utilise entityUrl pour .topic Toutefois, cet exemple établit un lien vers une réponse de message de canal. La réponse du message de canal indique l’état de la réservation d’hôtel de l’utilisateur. La sélection de la notification amène l’utilisateur au message de réponse dans le canal, où il peut vérifier l’état de sa réservation.

Demande

L’exemple suivant illustre la demande.

POST https://graph.microsoft.com/v1.0/teams/e8bece96-d393-4b9b-b8da-69cedef1a7e7/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/beta/teams/{teamId}/channels/{channelId}/messages/{messageId}/replies/{replyId}"
    },
    "activityType": "reservationStatusUpdated",
    "previewText": {
        "content": "You have moved up the queue"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        "userId": "jacob@contoso.com"
    },
    "templateParameters": [
        {
            "name": "reservationId",
            "value": "TREEE433"
        },
        {
            "name": "currentSlot",
            "value": "23"
        }
    ]
}

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 204 No Content