Saltar al contenido principal
Esta guía te explica cómo conectarte al stream filtrado para recibir en tiempo real Publicaciones que coincidan con tus reglas de filtrado.
Requisitos previosAntes de comenzar, necesitarás lo siguiente:
  • Una cuenta de desarrollador
  • El Bearer Token de tu App (se encuentra en la Consola de desarrollador, en «Keys and tokens»)

Crear una regla de filtrado

Las reglas definen qué Publicaciones se reciben. Usa operadores para hacer coincidir palabras clave, hashtags, usuarios y más.Ejemplo de regla: Coincidir con Publicaciones que contengan “cat” y tengan imágenes:
cat has:images

Crea una regla

Aprende la sintaxis de las reglas y sus operadores

Añade la regla a tu flujo

Añade tu regla usando el endpoint de reglas. Incluye una tag para identificar qué regla se aplicó a cada Publicación:
cURL
curl -X POST "https://api.x.com/2/tweets/search/stream/rules" \
  -H "Authorization: Bearer $BEARER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "add": [
      {"value": "cat has:images", "tag": "cats with images"}
    ]
  }'
Respuesta:
{
  "data": [
    {
      "id": "1273026480692322304",
      "value": "cat has:images",
      "tag": "cats with images"
    }
  ],
  "meta": {
    "sent": "2024-01-15T10:30:00.000Z",
    "summary": {
      "created": 1,
      "not_created": 0,
      "valid": 1,
      "invalid": 0
    }
  }
}

Comprueba tus reglas

Lista todas las reglas activas para confirmar que se añadió tu regla:
cURL
curl "https://api.x.com/2/tweets/search/stream/rules" \
  -H "Authorization: Bearer $BEARER_TOKEN"

Conectarse al flujo

Abre una conexión persistente para recibir Publicaciones coincidentes:
cURL
curl "https://api.x.com/2/tweets/search/stream?\
tweet.fields=created_at,author_id&\
expansions=author_id&\
user.fields=username" \
  -H "Authorization: Bearer $BEARER_TOKEN"

Procesar publicaciones entrantes

Flujo de Publicaciones que coinciden en forma de objetos JSON:
{
  "data": {
    "id": "1234567890",
    "text": "Look at this cute cat! 🐱",
    "author_id": "9876543210",
    "created_at": "2024-01-15T10:35:00.000Z",
    "edit_history_tweet_ids": ["1234567890"]
  },
  "includes": {
    "users": [
      {
        "id": "9876543210",
        "username": "catperson"
      }
    ]
  },
  "matching_rules": [
    {
      "id": "1273026480692322304",
      "tag": "cats with images"
    }
  ]
}
La matriz matching_rules muestra qué reglas se aplicaron a la Publicación, con las etiquetas que definiste.

Eliminar reglas (opcional)

Eliminar reglas por ID:
cURL
curl -X POST "https://api.x.com/2/tweets/search/stream/rules" \
  -H "Authorization: Bearer $BEARER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "delete": {
      "ids": ["1273026480692322304"]
    }
  }'

Gestión de tu conexión

El flujo envía líneas en blanco (\r\n) cada 20 segundos. Si no recibes datos ni una señal de keep-alive durante 20 segundos, vuelve a conectarte.
Pulsa Ctrl+C para cerrar la conexión o cierra la ventana del terminal.
Solo se permite una conexión por App. Si abres una nueva conexión, se cerrará cualquier conexión existente.

Próximos pasos

Crear una regla

Aprende la sintaxis de las reglas

Referencia de operadores

Todos los operadores disponibles

Gestión de desconexiones

Vuelve a conectarte sin problemas

Referencia de la API

Documentación completa del endpoint