chat: sendActivityNotification

Espacio de nombres: microsoft.graph

Enviar una notificación de fuente de actividad en el ámbito de un chat. Para obtener más información sobre el envío de notificaciones y los requisitos para hacerlo, consulte envío de notificaciones de actividad de Teams.

Esta API está disponible en las siguientes implementaciones nacionales de nube.

Servicio global Gobierno de EE. UU. L4 Us Government L5 (DOD) China operada por 21Vianet

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) TeamsActivity.Send No disponible.
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación TeamsActivity.Send.Chat TeamsActivity.Send

Nota: El TeamsActivity.Send.Chat permiso usa el consentimiento específico del recurso.

Solicitud HTTP

POST /chats/{chatId}/sendActivityNotification

Encabezados de solicitud

Nombre Descripción
Authorization {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización.
Content-Type application/json. Obligatorio.

Cuerpo de la solicitud

En el cuerpo de la solicitud, proporcione una representación JSON de los parámetros.

La siguiente tabla muestra los parámetros que se pueden usar con esta acción.

Parámetro Tipo Descripción
topic teamworkActivityTopic Tema de la notificación. Especifica el recurso del que se habla.
activityType Cadena El tipo de actividad debe declararse en el manifiesto de aplicación de Teams, excepto para el systemDefaulttipo de actividad Reservada, que proporciona texto de forma libre en la Actor+Reason línea de la notificación.
chainId Int64 Opcional. Identificador de cadena de la notificación. Se usa para invalidar una notificación anterior. Use lo mismo chainId en solicitudes posteriores para invalidar la notificación anterior.
previewText itemBody Texto de vista previa de la notificación. Microsoft Teams muestra los primeros 150 caracteres.
templateParameters Colección keyValuePair Valores de las variables de plantilla definidas en la entrada de fuente de actividad correspondiente a activityType en el manifiesto de aplicación de Teams.
destinatario teamworkNotificationRecipient Destinatario de la notificación. Para obtener más información, vea aadUserNotificationRecipient y chatMembersNotificationRecipient.
teamsAppId Cadena Opcional. El identificador de aplicación de Teams de la aplicación de Teams asociada a la notificación. Se usa para eliminar la ambigüedad de las aplicaciones instaladas cuando se instalan varias aplicaciones con el mismo identificador de aplicación de Id. de Microsoft Entra para el mismo usuario destinatario. Evite compartir identificadores de aplicación de Microsoft Entra ID entre aplicaciones de Teams.

Se admiten los siguientes recursos al establecer el source valor de la propiedad topic en entityURL:

Nota: La dirección URL de la entidad debe ser la misma que o un recurso secundario del chat en la dirección URL. Además, la aplicación teams debe instalarse en el chat.

Respuesta

Si se ejecuta correctamente, esta acción devuelve un código de respuesta 204 No Content.

Ejemplos

Ejemplo 1: Notificar a un usuario sobre una tarea creada en un chat

En el ejemplo siguiente se muestra cómo puede enviar una notificación de fuente de actividad para una nueva tarea creada en un chat. Para obtener más información, consulte envío de notificaciones de actividad de Teams.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/chats/{chatId}"
    },
    "activityType": "taskCreated",
    "previewText": {
        "content": "New Task Created"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        "userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    },
    "templateParameters": [
        {
            "name": "taskId",
            "value": "Task 12322"
        }
    ] 
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

HTTP/1.1 204 No Content

Ejemplo 2: Notificar a un usuario sobre una aprobación necesaria en un mensaje de chat

De forma similar al ejemplo anterior, en este ejemplo se usa entityUrl para .topic Sin embargo, en este caso, se vincula a un mensaje en el chat. El mensaje puede contener una tarjeta con el botón de aprobación.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/chats/{chatId}/messages/{messageId}"
    },
    "activityType": "approvalRequired",
    "previewText": {
        "content": "Deployment requires your approval"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        "userId": "569363e2-4e49-4661-87f2-16f245c5d66a"
    },
    "templateParameters": [
        {
            "name": "approvalTaskId",
            "value": "2020AAGGTAPP"
        }
    ]
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

HTTP/1.1 204 No Content

Ejemplo 3: Notificar a un usuario sobre una aprobación necesaria en un mensaje de chat mediante el nombre principal de usuario

De forma similar al ejemplo anterior, en este ejemplo se usa entityUrl para .topic Sin embargo, en este caso, se vincula a un mensaje en el chat. El mensaje puede contener una tarjeta con el botón de aprobación.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/chats/{chatId}/messages/{messageId}"
    },
    "activityType": "approvalRequired",
    "previewText": {
        "content": "Deployment requires your approval"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.aadUserNotificationRecipient",
        "userId": "jacob@contoso.com"
    },
    "templateParameters": [
        {
            "name": "approvalTaskId",
            "value": "2020AAGGTAPP"
        }
    ]
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

HTTP/1.1 204 No Content

Ejemplo 4: Notificar a un usuario sobre un evento en relación con un chat

Como se muestra en los ejemplos anteriores, puede vincular a diferentes aspectos del chat. Sin embargo, si desea vincular a un aspecto que no forma parte del chat o no está representado por Microsoft Graph, puede establecer el origen de en topictext y pasar un valor personalizado para él. Además, webUrl es necesario al establecer topic el origen en text.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

POST https://graph.microsoft.com/v1.0/chats/{chatId}/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"
        }
    ]
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

HTTP/1.1 204 No Content

Ejemplo 5: Notificar a los miembros del chat sobre una tarea creada en un chat

En el ejemplo siguiente se muestra cómo puede enviar una notificación de fuente de actividad a todos los miembros del chat. Este ejemplo es similar a los ejemplos anteriores. Sin embargo, en este caso, el destinatario es un chatMembersNotificationRecipient. El chatId especificado en el destinatario debe coincidir con el chatId especificado en la dirección URL de la solicitud.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

POST https://graph.microsoft.com/v1.0/chats/19:1c3af46e9e0f4a5293343c8813c47619@thread.v2/sendActivityNotification
Content-Type: application/json

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/v1.0/chats/19:1c3af46e9e0f4a5293343c8813c47619@thread.v2"
    },
    "activityType": "taskCreated",
    "previewText": {
        "content": "New Task Created"
    },
    "recipient": {
        "@odata.type": "microsoft.graph.chatMembersNotificationRecipient",
        "chatId": "19:1c3af46e9e0f4a5293343c8813c47619@thread.v2"
    },
    "templateParameters": [
        {
            "name": "taskId",
            "value": "Task 12322"
        }
    ] 
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

HTTP/1.1 204 No Content