Saltar al contenido principal

Introducción

Los endpoints de búsqueda de Posts en el entorno de v2 te permiten recibir Posts relacionados con temas de interés, basados en una consulta de búsqueda que generes. Contamos con dos endpoints diferentes disponibles con v2 Search Posts: búsqueda reciente, que está disponible para todos los desarrolladores con una cuenta aprobada y puede buscar Posts de hasta siete días de antigüedad, y búsqueda de archivo completo, que solo está disponible para investigadores aprobados para el Academic Research product track, y que permite buscar en todo el archivo de Posts desde marzo de 2006. Puedes ver toda nuestra oferta de búsqueda en nuestra search overview page. Estos endpoints de Search Posts atienden uno de los casos de uso más comunes para investigadores académicos, quienes podrían usar esto para estudios longitudinales o para analizar un tema o evento pasado. Este tutorial proporciona una guía paso a paso para investigadores que deseen usar el endpoint de búsqueda de archivo completo para consultar el historial completo de datos públicos de X. También mostrará las diferentes maneras de crear un conjunto de datos, como recuperar Posts con etiquetas geográficas, y cómo paginar los Posts disponibles para una consulta.

Requisitos previos

Actualmente, este endpoint solo está disponible como parte del Academic Research product track. Para usar este endpoint, debes solicitar acceso. Obtén más información sobre la solicitud y los requisitos de este track.

Conecta una App al Project académico

Una vez que se te apruebe el uso del carril de producto Academic Research, verás tu Academic Project académico en el Portal de desarrolladores. En la sección “Projects and Apps”, haz clic en “Add App” para conectar tu X App al Project. Esta imagen muestra un Project académico en el Portal de desarrolladores que aún no tiene una App agregada Luego, puedes elegir una App existente y conectarla a tu Project (como se muestra a continuación). Esta imagen muestra la página que aparece cuando intentas agregar una App a tu Project académico O puedes crear una App nueva, asignarle un nombre y hacer clic en Completar para conectar una App nueva a tu Project académico. Esta imagen muestra la página donde ingresarás un nombre para tu nueva App, o te permite seleccionar una App existente Esto te proporcionará tus claves de API y el Bearer Token, que luego podrás usar para conectarte al endpoint de búsqueda de archivo completo. Esta imagen muestra la página que se te presenta después de crear una nueva App, donde se muestran tus claves y tokens Ten en cuenta Las claves en la captura de pantalla anterior están ocultas, pero en tu propio Portal de desarrolladores podrás ver los valores reales de la API Key, la API Secret Key y el Bearer Token. Guarda estas claves y el Bearer Token porque las necesitarás para invocar el endpoint de búsqueda de archivo completo.

Conexión al endpoint de búsqueda del archivo completo

El siguiente comando cURL muestra cómo obtener publicaciones históricas de la cuenta @XDevelopers. Reemplaza $BEARER_TOKEN con tu propio token Bearer, pega la solicitud completa en tu terminal y pulsa «Intro».
curl --request GET 'https://api.x.com/2/tweets/search/all?query=from:xdevelopers' --header 'Authorization: Bearer $BEARER_TOKEN'
Verás el JSON de la respuesta. De forma predeterminada, solo se devolverán las 10 publicaciones más recientes. Si quieres más de 10 publicaciones por solicitud, puedes usar el parámetro max_results y establecerlo en un máximo de 500 publicaciones por solicitud, como se muestra a continuación:
curl --request GET 'https://api.x.com/2/tweets/search/all?query=from:xdevelopers&max_results=500' --header 'Authorization: Bearer $BEARER_TOKEN'

Creación de consultas Como se ve en las llamadas de ejemplo anteriores, con el parámetro query puedes especificar los datos que quieres buscar. Por ejemplo, si quieres obtener todos los Posts que contengan la palabra covid o la palabra coronavirus, puedes usar el operador OR entre paréntesis, y tu consulta puede ser (covid OR coronavirus) y, por lo tanto, tu llamada a la API se verá así:
curl --request GET 'https://api.x.com/2/tweets/search/all?query=(covid%20OR%20coronavirus)&max_results=500' --header 'Authorization: Bearer $BEARER_TOKEN'
De manera similar, si quieres todos los Posts que contengan la palabra covid19 y que no sean reposts, puedes usar el operador is:retweet con el operador lógico NOT (representado por -), por lo que tu consulta puede ser covid19 -is:retweet y tu llamada a la API será:
curl --request GET 'https://api.x.com/2/tweets/search/all?query=covid19%20-is:retweet&max_results=500' --header 'Authorization: Bearer $BEARER_TOKEN'
Consulta esta guía para ver la lista completa de operadores admitidos en el endpoint de búsqueda de archivo completo.

Uso de los parámetros start_time y end_time para obtener Posts históricos

Al usar el endpoint de búsqueda de archivo completo, de forma predeterminada se devolverán los Posts de los últimos 30 días. Si desea obtener Posts con más de 30 días de antigüedad, puede usar los parámetros start_time y end_time en su llamada a la API. Estos parámetros deben estar en un formato de fecha y hora RFC3339 válido, por ejemplo, 2020-12-21T13:00:00.00Z. Así, si desea obtener todos los Posts de la cuenta XDevelopers del mes de diciembre de 2020, su llamada a la API será:
curl --request GET 'https://api.x.com/2/tweets/search/all?query=from:XDevelopers&start_time=2020-12-01T00:00:00.00Z&end_time=2021-01-01T00:00:00.00Z' --header 'Authorization: Bearer $BEARER_TOKEN'

Obtención de Posts históricos con etiqueta geográfica Los Posts con etiqueta geográfica son Posts que tienen información geográfica asociada, como ciudad, estado, país, etc.

Uso del operador has:geo

Si deseas obtener Posts que incluyan datos de geolocalización, puedes usar el operador has:geo. Por ejemplo, la siguiente solicitud cURL recuperará únicamente aquellos Posts de la cuenta @XDevelopers que incluyen datos de geolocalización:
curl --request GET
'https://api.x.com/2/tweets/search/all?query=from:xdevelopers%20has:geo' --header
'Authorization: Bearer $BEARER_TOKEN'

Uso del operador place_country

De manera similar, puedes limitar los Posts que tienen datos geográficos a un país específico usando el operador place_country. El comando cURL a continuación obtendrá todos los Posts de la cuenta @XDevelopers de Estados Unidos:
curl --request GET
'https://api.x.com/2/tweets/search/all?query=from:xdevelopers%20place_country:US'
--header 'Authorization: Bearer XXXXX'
El país se indica arriba mediante el código ISO alfabético de dos letras (alpha‑2). Puedes consultar los códigos ISO válidos aquí.

Obtener más de 500 Posts históricos usando el next_token

Como se mencionó anteriormente, de forma predeterminada solo puedes obtener hasta 500 Posts por solicitud para una consulta al endpoint de búsqueda del archivo completo. Si hay más de 500 Posts disponibles para tu consulta, tu respuesta JSON incluirá un next_token que puedes añadir a tu llamada a la API para obtener los siguientes Posts disponibles para esta consulta. Este next_token está disponible en el objeto meta de tu respuesta JSON, que luce así:
{ "newest_id": "12345678...", "oldest_id": "12345678...", "result_count": 500,
"nebashxt_token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" }
Por lo tanto, para obtener los siguientes Posts disponibles, usa el valor de next_token de este objeto meta y úsalo como valor de next_token en tu llamada a la API al endpoint de búsqueda de archivo completo, como se muestra a continuación (usarás tu propio Bearer Token y el valor del Next Token que obtuviste en tu llamada previa a la API).
curl --request GET
'https://api.x.com/2/tweets/search/all?max_results=500&query=covid&next_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
--header 'Authorization: Bearer $BEARER_TOKEN'
De este modo, puedes seguir comprobando si hay un next_token disponible y, si aún no has alcanzado el número de Posts que deseas recopilar, puedes seguir llamando al endpoint de archivo completo con el nuevo next_token en cada solicitud. Ten en cuenta que el endpoint de búsqueda de archivo completo computa para tu Post cap, es decir, el número de Posts por mes que puedes obtener de la X API por Project, así que presta atención a la lógica de tu código al paginar por los resultados para asegurarte de no terminar agotando inadvertidamente tu Post cap. A continuación encontrarás algunos recursos que pueden ayudarte cuando uses el endpoint de búsqueda de archivo completo. Nos encantaría conocer tus comentarios. Contáctanos en @XDevelopers o en nuestros foros de la comunidad si tienes preguntas sobre este endpoint.

Recursos adicionales