Esta guía te mostrará cómo enviar Mensajes Directos y crear conversaciones de grupo.
Requisitos previos Antes de comenzar, necesitarás:
Una cuenta de desarrollador con una App aprobada
Un User Access Token (OAuth 2.0 PKCE con los ámbitos dm.write y dm.read)
Enviar un mensaje individual
Obtener el ID de usuario del destinatario
Enviar el mensaje
curl -X POST "https://api.x.com/2/dm_conversations/with/9876543210/messages" \
-H "Authorization: Bearer $USER_ACCESS_TOKEN " \
-H "Content-Type: application/json" \
-d '{"text": "¡Hola! Este es un mensaje desde la API."}'
Revisa la respuesta
{
"data" : {
"dm_conversation_id" : "1234567890-9876543210" ,
"dm_event_id" : "1582103724607971332"
}
}
Crear una conversación de grupo
Definir participantes
Reúne los identificadores de usuario de todas las personas que quieres incluir en el grupo (sin incluirte a ti).
Crear el grupo con el primer mensaje
curl -X POST "https://api.x.com/2/dm_conversations" \
-H "Authorization: Bearer $USER_ACCESS_TOKEN " \
-H "Content-Type: application/json" \
-d '{
"conversation_type": "Group",
"participant_ids": ["944480690", "906948460078698496"],
"message": {"text": "¡Bienvenidos a nuestro nuevo grupo!"}
}'
Recibir el identificador de la conversación
{
"data" : {
"dm_conversation_id" : "1582103724607971328" ,
"dm_event_id" : "1582103724607971332"
}
}
Guarda el dm_conversation_id para añadir más mensajes más adelante.
Agregar un mensaje a una conversación existente
Envía un mensaje a una conversación de la que ya formas parte:
curl -X POST "https://api.x.com/2/dm_conversations/1582103724607971328/messages" \
-H "Authorization: Bearer $USER_ACCESS_TOKEN " \
-H "Content-Type: application/json" \
-d '{"text": "Agregando otro mensaje a la conversación."}'
Subir el contenido multimedia
Enviar con contenido multimedia adjunto
curl -X POST "https://api.x.com/2/dm_conversations/with/9876543210/messages" \
-H "Authorization: Bearer $USER_ACCESS_TOKEN " \
-H "Content-Type: application/json" \
-d '{
"text": "Check out this image!",
"attachments": [{"media_id": "1234567890123456789"}]
}'
Elimina un mensaje que enviaste:
curl -X DELETE "https://api.x.com/2/dm_events/1582103724607971332" \
-H "Authorization: Bearer $USER_ACCESS_TOKEN "
Respuesta:
{
"data" : {
"deleted" : true
}
}
Solo puedes eliminar los mensajes que tú enviaste; no puedes eliminar los mensajes de otros participantes.
Cuando uses OAuth 2.0 PKCE, tu token de acceso debe tener estos permisos:
Scope Descripción dm.writeEnviar y eliminar mensajes dm.readLeer conversaciones (requerido con dm.write) tweet.readRequerido para algunas expansions users.readRequerido para expansions de usuario
Consulta de mensajes directos Recupera conversaciones de mensajes directos
Guía de integración Conceptos clave y mejores prácticas
Referencia de la API Documentación completa del endpoint
Código de ejemplo Ejemplos de código funcional