Obtener chatMessage en un canal o chat
Espacio de nombres: microsoft.graph
Importante
Las API de la versión /beta
de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.
Recupere un único mensaje o un mensaje de respuesta en un canal o en un chat.
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 |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Permisos
Se requiere uno de los siguientes permisos para llamar a esta API. Para obtener más información, incluido cómo elegir permisos, vea Permisos.
Permisos para el canal
Tipo de permiso | Permisos (de menos a más privilegiados) |
---|---|
Delegado (cuenta profesional o educativa) | ChannelMessage.Read.All, Group.Read.All, Group.ReadWrite.All |
Delegado (cuenta personal de Microsoft) | No admitida. |
Aplicación | ChannelMessage.Read.Group, ChannelMessage.Read.All, Group.Read.All, Group.ReadWrite.All |
Nota: Los permisos Group.Read.All y Group.ReadWrite.All solo se admiten por compatibilidad con versiones anteriores. Se recomienda actualizar las soluciones para usar un permiso alternativo enumerado en la tabla anterior y evitar el uso de estos permisos en el futuro.
Permisos para chat
Tipo de permiso | Permisos (de menos a más privilegiados) |
---|---|
Delegado (cuenta profesional o educativa) | Chat.Read, Chat.ReadWrite |
Delegado (cuenta personal de Microsoft) | No admitida. |
Aplicación | ChatMessage.Read.Chat, Chat.Read.All, Chat.ReadWrite.All |
Nota:
Los permisos ChannelMessage.Read.Group y ChatMessage.Read.Chat usan el consentimiento específico del recurso.
Solicitud HTTP
Obtener un mensaje en un canal
GET /teams/{team-id}/channels/{channel-id}/messages/{message-id}
GET /teams/{team-id}/channels/{channel-id}/messages/{message-id}/replies/{reply-id}
Recibir un mensaje en un chat
GET /chats/{chat-id}/messages/{message-id}
GET /users/{user-id | user-principal-name}/chats/{chat-id}/messages/{message-id}
GET /me/chats/{chat-id}/messages/{message-id}
Parámetros de consulta opcionales
Este método no admite los parámetros de consulta de OData para personalizar la respuesta.
Encabezados de solicitud
Encabezado | Valor |
---|---|
Authorization | {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización. |
Cuerpo de la solicitud
No proporcione un cuerpo de solicitud para este método.
Respuesta
Si se ejecuta correctamente, este método devuelve un código de respuesta 200 OK
y un objeto chatmessage en el cuerpo de la respuesta.
Ejemplos
Ejemplo 1: Recibir un mensaje en un chat
Solicitud
En el ejemplo siguiente se muestra la solicitud.
GET https://graph.microsoft.com/beta/chats/19:8ea0e38b-efb3-4757-924a-5f94061cf8c2_97f62344-57dc-409c-88ad-c4af14158ff5@unq.gbl.spaces/messages/1612289992105
Respuesta
En el ejemplo siguiente se muestra la respuesta.
chatId
identifica el chat que contiene este mensaje.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#chats('19%3A8ea0e38b-efb3-4757-924a-5f94061cf8c2_97f62344-57dc-409c-88ad-c4af14158ff5%40unq.gbl.spaces')/messages/$entity",
"id": "1612289992105",
"replyToId": null,
"etag": "1612289992105",
"messageType": "message",
"createdDateTime": "2021-02-02T18:19:52.105Z",
"lastModifiedDateTime": "2021-02-02T18:19:52.105Z",
"lastEditedDateTime": null,
"deletedDateTime": null,
"subject": null,
"summary": null,
"chatId": "19:8ea0e38b-efb3-4757-924a-5f94061cf8c2_97f62344-57dc-409c-88ad-c4af14158ff5@unq.gbl.spaces",
"importance": "normal",
"locale": "en-us",
"webUrl": null,
"channelIdentity": null,
"onBehalfOf": null,
"policyViolation": null,
"eventDetail": null,
"from": {
"application": null,
"device": null,
"conversation": null,
"user": {
"@odata.type": "#microsoft.graph.teamworkUserIdentity",
"id": "8ea0e38b-efb3-4757-924a-5f94061cf8c2",
"displayName": "Robin Kline",
"userIdentityType": "aadUser",
"tenantId": "e61ef81e-8bd8-476a-92e8-4a62f8426fca"
}
},
"body": {
"contentType": "text",
"content": "test"
},
"attachments": [],
"mentions": [],
"reactions": [],
"messageHistory": []
}
Ejemplo 2: Obtener un mensaje en un canal
Solicitud
En el ejemplo siguiente se muestra la solicitud.
GET https://graph.microsoft.com/beta/teams/fbe2bf47-16c8-47cf-b4a5-4b9b187c508b/channels/19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2/messages/1614618259349
Respuesta
En el ejemplo siguiente se muestra la respuesta.
channelIdentity
identifica el equipo y el canal que contiene este mensaje.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#teams('fbe2bf47-16c8-47cf-b4a5-4b9b187c508b')/channels('19%3A4a95f7d8db4c4e7fae857bcebe0623e6%40thread.tacv2')/messages/$entity",
"id": "1614618259349",
"replyToId": null,
"etag": "1614618259349",
"messageType": "message",
"createdDateTime": "2021-03-01T17:04:19.349Z",
"lastModifiedDateTime": "2021-03-01T17:04:19.349Z",
"lastEditedDateTime": null,
"deletedDateTime": null,
"subject": null,
"summary": null,
"chatId": null,
"importance": "normal",
"locale": "en-us",
"webUrl": "https://teams.microsoft.com/l/message/19%3A4a95f7d8db4c4e7fae857bcebe0623e6%40thread.tacv2/1614618259349?groupId=fbe2bf47-16c8-47cf-b4a5-4b9b187c508b&tenantId=2432b57b-0abd-43db-aa7b-16eadd115d34&createdTime=1614618259349&parentMessageId=1614618259349",
"policyViolation": null,
"eventDetail": null,
"from": {
"application": null,
"device": null,
"conversation": null,
"user": {
"@odata.type": "#microsoft.graph.teamworkUserIdentity",
"id": "8ea0e38b-efb3-4757-924a-5f94061cf8c2",
"displayName": "Robin Kline",
"userIdentityType": "aadUser",
"tenantId": "e61ef81e-8bd8-476a-92e8-4a62f8426fca"
}
},
"body": {
"contentType": "html",
"content": "<div><div><div><span><img height=\"250\" src=\"https://graph.microsoft.com/beta/teams/fbe2bf47-16c8-47cf-b4a5-4b9b187c508b/channels/19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2/messages/1614618259349/hostedContents/aWQ9eF8wLXd1cy1kOS1jZTI3NDkxOTIzMTJjYWI5NDczMWQwYTgzNTFjN2VhNSx0eXBlPTEsdXJsPWh0dHBzOi8vdXMtYXBpLmFzbS5za3lwZS5jb20vdjEvb2JqZWN0cy8wLXd1cy1kOS1jZTI3NDkxOTIzMTJjYWI5NDczMWQwYTgzNTFjN2VhNS92aWV3cy9pbWdv/$value\" width=\"424.6575342465753\" style=\"vertical-align:bottom; width:424px; height:250px\"></span></div></div></div>"
},
"channelIdentity": {
"teamId": "fbe2bf47-16c8-47cf-b4a5-4b9b187c508b",
"channelId": "19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2"
},
"onBehalfOf": null,
"attachments": [],
"mentions": [],
"reactions": [],
"messageHistory": []
}
Ejemplo 3: Obtener la respuesta a un mensaje en un canal
Solicitud
En el ejemplo siguiente se muestra la solicitud.
GET https://graph.microsoft.com/beta/teams/fbe2bf47-16c8-47cf-b4a5-4b9b187c508b/channels/19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2/messages/1612509044972/replies/1613671348387
Respuesta
En el ejemplo siguiente se muestra la respuesta.
replyToId
contiene el id
del mensaje raíz.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#teams('fbe2bf47-16c8-47cf-b4a5-4b9b187c508b')/channels('19%3A4a95f7d8db4c4e7fae857bcebe0623e6%40thread.tacv2')/messages('1612509044972')/replies/$entity",
"id": "1613671348387",
"replyToId": "1612509044972",
"etag": "1613671348387",
"messageType": "message",
"createdDateTime": "2021-02-18T18:02:28.387Z",
"lastModifiedDateTime": "2021-02-18T18:02:28.387Z",
"lastEditedDateTime": null,
"deletedDateTime": null,
"subject": null,
"summary": null,
"chatId": null,
"importance": "normal",
"locale": "en-us",
"webUrl": "https://teams.microsoft.com/l/message/19%3A4a95f7d8db4c4e7fae857bcebe0623e6%40thread.tacv2/1613671348387?groupId=fbe2bf47-16c8-47cf-b4a5-4b9b187c508b&tenantId=2432b57b-0abd-43db-aa7b-16eadd115d34&createdTime=1613671348387&parentMessageId=1612509044972",
"policyViolation": null,
"eventDetail": null,
"from": {
"application": null,
"device": null,
"conversation": null,
"user": {
"@odata.type": "#microsoft.graph.teamworkUserIdentity",
"id": "8ea0e38b-efb3-4757-924a-5f94061cf8c2",
"displayName": "Robin Kline",
"userIdentityType": "aadUser",
"tenantId": "e61ef81e-8bd8-476a-92e8-4a62f8426fca"
}
},
"body": {
"contentType": "html",
"content": "<div><div>Test</div></div>"
},
"channelIdentity": {
"teamId": "fbe2bf47-16c8-47cf-b4a5-4b9b187c508b",
"channelId": "19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2"
},
"onBehalfOf": null,
"attachments": [],
"mentions": [],
"reactions": [],
"messageHistory": []
}
Ejemplo 4: Obtener un mensaje de chat con emojis y reacciones personalizados
En el ejemplo siguiente se muestra una solicitud para obtener un mensaje de chat que contiene emojis personalizados en el cuerpo del mensaje e incluye reacciones personalizadas.
Solicitud
En el ejemplo siguiente se muestra la solicitud.
GET https://graph.microsoft.com/beta/chats/19:bcf84b15c2994a909770f7d05bc4fe16@thread.v2/messages/1706763669648
Respuesta
En el ejemplo siguiente se muestra la respuesta. El cuerpo del mensaje contiene una <customemoji></customemoji>
etiqueta y el mensaje incluye una reacción personalizada indicada por "reactionType": "custom"
. Puede acceder a emojis y reacciones personalizados como contenido hospedado en un mensaje de chat.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#chats('19%3Abcf84b15c2994a909770f7d05bc4fe16%40thread.v2')/messages/$entity",
"id": "1706763669648",
"replyToId": null,
"etag": "1707948456260",
"messageType": "message",
"createdDateTime": "2024-02-01T05:01:09.648Z",
"lastModifiedDateTime": "2024-02-14T22:07:36.26Z",
"lastEditedDateTime": null,
"deletedDateTime": null,
"subject": null,
"summary": null,
"chatId": "19:bcf84b15c2994a909770f7d05bc4fe16@thread.v2",
"importance": "normal",
"locale": "en-us",
"webUrl": null,
"channelIdentity": null,
"onBehalfOf": null,
"policyViolation": null,
"eventDetail": null,
"from": {
"application": null,
"device": null,
"user": {
"@odata.type": "#microsoft.graph.teamworkUserIdentity",
"id": "670374fa-3b0e-4a3b-9d33-0e1bc5ff1956",
"displayName": "Adele Vance",
"userIdentityType": "aadUser",
"tenantId": "2432b57b-0abd-43db-aa7b-16eadd115d34"
}
},
"body": {
"contentType": "html",
"content": "<p>I am looking <emoji id=\"1f440_eyes\" alt=\"👀\" title=\"Eyes\"></emoji><customemoji id=\"dGVzdHNjOzAtd3VzLWQyLTdiNWRkZGQ2ZGVjMDNkYzIwNTgxY2NkYTE1MmEyZTM4\" alt=\"microsoft_teams\" source=\"https://graph.microsoft.com/beta/chats/19:bcf84b15c2994a909770f7d05bc4fe16@thread.v2/messages/1706638496169/hostedContents/aWQ9LHR5cGU9MSx1cmw9aHR0cHM6Ly91cy1jYW5hcnkuYXN5bmNndy50ZWFtcy5taWNyb3NvZnQuY29tL3YxL29iamVjdHMvMC13dXMtZDItN2I1ZGRkZDZkZWMwM2RjMjA1ODFjY2RhMTUyYTJlMzgvdmlld3MvaW1ndDJfYW5pbQ==/$value\"></customemoji></p>"
},
"attachments": [],
"mentions": [],
"reactions": [
{
"reactionType": "💯",
"displayName": "Hundred points",
"reactionContentUrl": null,
"createdDateTime": "2024-02-14T22:07:36.3Z",
"user": {
"application": null,
"device": null,
"user": {
"@odata.type": "#microsoft.graph.teamworkUserIdentity",
"id": "670374fa-3b0e-4a3b-9d33-0e1bc5ff1956",
"displayName": null,
"userIdentityType": "aadUser"
}
}
},
{
"reactionType": "custom",
"displayName": "microsoft_teams",
"reactionContentUrl": "https://graph.microsoft.com/beta/chats/19:bcf84b15c2994a909770f7d05bc4fe16@thread.v2/messages/1706763669648/hostedContents/aWQ9MC13dXMtZDExLTc3ZmI2NmY4MTMwMGI2OGEzYzRkOWUyNmU1YTc5ZmMyLHR5cGU9MSx1cmw9/$value",
"createdDateTime": "2024-02-14T22:07:02.288Z",
"user": {
"application": null,
"device": null,
"user": {
"@odata.type": "#microsoft.graph.teamworkUserIdentity",
"id": "28c10244-4bad-4fda-993c-f332faef94f0",
"displayName": null,
"userIdentityType": "aadUser"
}
}
}
]
}
Ejemplo 5: Obtener un mensaje de chat con un @mention para todos
En el ejemplo siguiente se muestra una solicitud para obtener un mensaje de chat que @mentions todos los usuarios de un chat de grupo.
Solicitud
En el ejemplo siguiente se muestra la solicitud.
GET https://graph.microsoft.com/beta/chats/19:80a7ff67c0ef43c19d88a7638be436b1@thread.v2/messages/1725986575123
Respuesta
En el ejemplo siguiente se muestra la respuesta. El cuerpo del mensaje contiene un @mention elemento para todos los usuarios de un chat de grupo representado por la <at></at>
etiqueta . La propiedad conversationIdentityType se establece chat
en en la identidad de conversación del objeto mencionado .
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#chats('19%3A80a7ff67c0ef43c19d88a7638be436b1%40thread.v2')/messages/$entity",
"@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET chats('<key>')/messages('<key>')?$select=attachments,body",
"id": "1725986575123",
"replyToId": null,
"etag": "1725986575123",
"messageType": "message",
"createdDateTime": "2024-09-10T16:42:55.123Z",
"lastModifiedDateTime": "2024-09-10T16:42:55.123Z",
"lastEditedDateTime": null,
"deletedDateTime": null,
"subject": null,
"summary": null,
"chatId": "19:80a7ff67c0ef43c19d88a7638be436b1@thread.v2",
"importance": "normal",
"locale": "en-us",
"webUrl": null,
"channelIdentity": null,
"onBehalfOf": null,
"policyViolation": null,
"eventDetail": null,
"from": {
"application": null,
"device": null,
"user": {
"@odata.type": "#microsoft.graph.teamworkUserIdentity",
"id": "28c10244-4bad-4fda-993c-f332faef94f0",
"displayName": "Adele Vance",
"userIdentityType": "aadUser",
"tenantId": "2432b57b-0abd-43db-aa7b-16eadd115d34"
}
},
"body": {
"contentType": "html",
"content": "<p>Hi <at id=\"0\">Everyone</at></p>"
},
"attachments": [],
"mentions": [
{
"id": 0,
"mentionText": "Everyone",
"mentioned": {
"application": null,
"device": null,
"user": null,
"tag": null,
"conversation": {
"id": "19:80a7ff67c0ef43c19d88a7638be436b1@thread.v2",
"displayName": "Everyone",
"conversationIdentityType": "chat"
}
}
}
],
"reactions": []
}
Ejemplo 6: Obtención de un mensaje de chat con un mensaje reenviado
En el ejemplo siguiente se muestra una solicitud que obtiene un mensaje de chat con un mensaje reenviado como datos adjuntos.
Solicitud
En el ejemplo siguiente se muestra la solicitud.
GET https://graph.microsoft.com/beta/chats/19:e2ed97baac8e4bffbb91299a38996790@thread.v2/messages/1727903166936
Respuesta
En el ejemplo siguiente se muestra la respuesta. El cuerpo del mensaje contiene un mensaje reenviado como datos adjuntos. El contentType del mensaje reenviado se identifica como forwardedMessageReference
. El mensaje original que se reenvió también está disponible en el contenido de los datos adjuntos.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#chats('19%3Ae2ed97baac8e4bffbb91299a38996790%40thread.v2')/messages/$entity",
"@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET chats('<key>')/messages('<key>')?$select=attachments,body",
"id": "1727903166936",
"replyToId": null,
"etag": "1727903166936",
"messageType": "message",
"createdDateTime": "2024-10-02T21:06:06.936Z",
"lastModifiedDateTime": "2024-10-02T21:06:06.936Z",
"lastEditedDateTime": null,
"deletedDateTime": null,
"subject": null,
"summary": null,
"chatId": "19:e2ed97baac8e4bffbb91299a38996790@thread.v2",
"importance": "normal",
"locale": "en-us",
"webUrl": null,
"channelIdentity": null,
"onBehalfOf": null,
"policyViolation": null,
"eventDetail": null,
"from": {
"application": null,
"device": null,
"user": {
"@odata.type": "#microsoft.graph.teamworkUserIdentity",
"id": "28c10244-4bad-4fda-993c-f332faef94f0",
"displayName": null,
"userIdentityType": "aadUser",
"tenantId": "2432b57b-0abd-43db-aa7b-16eadd115d34"
}
},
"body": {
"contentType": "html",
"content": "<attachment id=\"1727881360458\"></attachment>"
},
"attachments": [
{
"id": "1727881360458",
"contentType": "forwardedMessageReference",
"contentUrl": null,
"content": "{\"originalMessageId\":\"1727881360458\",\"originalMessageContent\":\"\\n<p>hello</p>\\n\",\"originalConversationId\":\"19:97641583cf154265a237da28ebbde27a@thread.v2\",\"originalSentDateTime\":\"2024-10-02T15:02:40.458+00:00\",\"originalMessageSender\":{\"application\":null,\"device\":null,\"user\":{\"userIdentityType\":\"aadUser\",\"tenantId\":\"2432b57b-0abd-43db-aa7b-16eadd115d34\",\"id\":\"28c10244-4bad-4fda-993c-f332faef94f0\",\"displayName\":null}}}",
"name": null,
"thumbnailUrl": null,
"teamsAppId": null
}
],
"mentions": [],
"reactions": []
}