Saltar al contenido principal
Esta guía cubre los conceptos clave que necesitas para integrar los endpoints de consulta de Mensajes Directos en tu aplicación.

Autenticación

Los endpoints de MD (Mensajes Directos) requieren autenticación de usuario para acceder a conversaciones privadas:
MétodoDescripción
OAuth 2.0 Authorization Code with PKCERecomendado
OAuth 1.0a User ContextSoporte heredado
La autenticación App-Only no se admite. Todos los mensajes directos son privados.

Permisos requeridos (OAuth 2.0)

PermisoRequerido para
dm.readLectura de eventos de mensajes directos (MD)
tweet.readRequerido junto con dm.read
users.readRequerido junto con dm.read

Tipos de conversación

Uno a uno

Siempre tiene exactamente dos participantes. Formato de id de la conversación: {smaller_user_id}-{larger_user_id}

Grupo

Dos o más participantes. La lista de miembros puede cambiar con el tiempo.

Tipos de eventos

EventoDescripciónCampos clave
MessageCreateSe envió un mensajetext, sender_id
ParticipantsJoinUn usuario se unió al grupoparticipant_ids, sender_id
ParticipantsLeaveUn usuario abandonó el grupoparticipant_ids

Ejemplos de eventos

{
  "id": "1582838499983564806",
  "event_type": "MessageCreate",
  "text": "Hola a todos.",
  "sender_id": "944480690",
  "dm_conversation_id": "1578398451921985538",
  "created_at": "2022-10-19T20:58:00.000Z"
}
{
  "id": "1582835469712138240",
  "event_type": "ParticipantsJoin",
  "participant_ids": ["944480690"],
  "sender_id": "17200003",
  "dm_conversation_id": "1578398451921985538",
  "created_at": "2022-10-19T20:45:58.000Z"
}
{
  "id": "1582838535115067392",
  "event_type": "ParticipantsLeave",
  "participant_ids": ["944480690"],
  "dm_conversation_id": "1578398451921985538",
  "created_at": "2022-10-19T20:58:09.000Z"
}

Campos y expansions

Campos predeterminados

Tipo de eventoCampos predeterminados
MessageCreateid, event_type, text
ParticipantsJoin/Leaveid, event_type, participant_ids

Campos disponibles

CampoDescripciónEventos
dm_conversation_idID de la conversaciónTodos
created_atMarca de tiempo del eventoTodos
sender_idQuién envió/invitóMessageCreate, Join
attachmentsArchivos multimedia adjuntosMessageCreate
referenced_tweetsPublicaciones compartidasMessageCreate

Expansions disponibles

ExpansiónDevuelve
sender_idObjeto de usuario del remitente
participant_idsObjetos de usuario de los participantes
attachments.media_keysObjetos de medios
referenced_tweets.idObjetos de Publicación

Ejemplo con expansions

cURL
curl "https://api.x.com/2/dm_events?\
dm_event.fields=created_at,sender_id,attachments&\
expansions=sender_id,attachments.media_keys&\
user.fields=username,profile_image_url&\
media.fields=url,type" \
  -H "Authorization: Bearer $USER_ACCESS_TOKEN"

Los eventos de MD (mensajes directos) se devuelven en orden cronológico inverso (los más recientes primero):
cURL
# Primera solicitud
curl "https://api.x.com/2/dm_events?max_results=100" \
  -H "Authorization: Bearer $USER_ACCESS_TOKEN"

# Solicitud posterior con token de paginación
curl "https://api.x.com/2/dm_events?max_results=100&pagination_token=NEXT_TOKEN" \
  -H "Authorization: Bearer $USER_ACCESS_TOKEN"
Están disponibles eventos de hasta 30 días de antigüedad.

Compatibilidad de id con v1.1

Los id de conversación y de evento se comparten entre los endpoints de v1.1 y v2. Esto significa que puedes:
  • Usar v2 para obtener eventos y luego usar v1.1 para eliminar mensajes específicos
  • Hacer referencia a id de conversación desde URL de x.com en solicitudes a la API

Próximos pasos

Inicio rápido

Realiza tu primera solicitud de consulta de MD

Enviar MD

Envía mensajes directos

Referencia de la API

Documentación completa del endpoint

Código de ejemplo

Ejemplos de código funcional