Cómo utilizar la API de búsqueda de Twitter con 4D

Traducido automáticamente de Deepl

Dado que hay unos 6.000 tweets cada segundo(es decir, más de 350.000 tweets por minuto, 500 millones de tweets al día que equivalen a unos 200.000 millones de tweets al año), sería estupendo poder buscar los relacionados con un tema concreto en lugar de una avalancha de tweets que no nos interesan. Buenas noticias. Twitter proporciona una API de búsqueda REST que es estupenda para buscar tuits.

En este post discutiremos cómo utilizar la API de búsqueda de Twitter con 4D (Saltar al ejemplo de la base de datos).

tokens de acceso a twitter

Para utilizar la API de búsqueda de Twitter, necesita tokens de acceso. Esto es obligatorio para enviar solicitudes a la API. Para obtener estos tokens, debe crear una Aplicación Twitter (un paso gratuito, pero necesario ):

  1. Cree una cuenta de Twitter (si aún no tiene una).
  2. Ve a https://dev.twitter.com/apps/new e inicia sesión.
  3. Haz clic en el botón «Crear nueva aplicación», rellena el formulario, acepta las condiciones y haz clic en el botón «Crea tu aplicación de Twitter».
  4. A continuación, en la pestaña «Claves y tokens de acceso», copia tu «clave de API» y tu «secreto de API».

  5. Desplázate hacia abajo y haz clic en «Crear mi token de acceso». Copie su «Clave de acceso» y su «Secreto de la clave de acceso». Al hacerlo, le das a tu cuenta de Twitter acceso para utilizar esta API. A continuación, verás:

    blank

Nota: Estos tokens deben ser considerados tan sensibles como las contraseñas y no deben ser compartidos o distribuidos a partes no confiables.

autenticación

Ahora que tenemos nuestros tokens, vamos a ensuciarnos las manos y escribir el código de autenticación. Para ello, utilizaremos el proceso de«autenticación sólo para aplicaciones». Esto permite que una aplicación emita solicitudes autenticadas para sí misma, y no en nombre de un usuario específico. Este proceso requiere que una aplicación

  • codificar su clave de consumidor y su secreto.
  • hacer una solicitud al punto final POST oauth2 / token para intercambiar estas credenciales por un token de portador.
  • utilizar este token de portador para la autenticación al acceder a la API REST.

Así es como se hace con 4D:

  • Concatenar la clave de consumidor y el secreto de consumidor codificado en una sola cadena con un carácter de dos puntos «:».
  • Convierte tu cadena en un BLOB con el comando TEXT TO BLOB comando.
  • Codificar el blob con el comando BASE64 ENCODE comando.

SET BLOB SIZE(vxBlob;0)
$consumerKey :="su clave de consumidor aquí"
$consumerSecret :="su secreto de consumidor aquí"
TEXT TO BLOB ($consumerKey+": "+$consumerSecret; vxBlob; UTF8 text without length)
BASE64 ENCODE (vxBlob; $authBasicTxt)

  • El valor resultante debe ser intercambiado por un token de portador mediante la emisión de una solicitud a POST oauth2 / token. Esta solicitud se realiza con el comando 4D HTTP Request y el selector HTTP POST method. Debe incluir una cabecera Authorization y una Content-Type, con el cuerpo de la petición como grant_type=client_credentials.

$authRequestContent:="grant_type=client_credentials"
ARRAY TEXT ($arrHeadAttr;0)
ARRAY TEXT ($arrHeadValue;0)
APPEND TO ARRAY ($arrHeadAttr; "Authorization")
APPEND TO ARRAY ($arrHeadAttr; "Content-Type")
APPEND TO ARRAY ($arrHeadValue; "Basic "+$authBasicTxt)
APPEND TO ARRAY ($arrHeadValue; "application/x-www-form-urlencoded;charset=UTF-8")
$url :="https://api.twitter.com/oauth2/token"
C_TEXT($response)

$result :=HTTP Request(HTTP POST method;$url;$authRequestContent;$response; $arrHeadAttr;$arrHeadValue;*)

  • Asegúrese de que su petición HTTP es correcta, verificando que el código de estado de la respuesta es 200. (Más información sobre los códigos de estado HTTP)
  • Analizar la respuesta HTTP con el comando JSON Parse y almacenar el valor de la propiedad access_token en una variable.

C_OBJECT($jsonResponse)
$jsonResponse
:=JSON Parse($response)
$accessToken :=OB Get($jsonResponse; "access_token";Is text)

  • Este token de acceso se utilizará para emitir una solicitud a nuestra API de búsqueda (detalles en la sección de búsqueda de tweets ). Así que cópialo y mantenlo cerca.

blank

búsqueda de tweets

La parte complicada ha terminado. Ahora que tenemos nuestro token de acceso, podemos usarlo para emitir una solicitud a GET search/tweets.json:

$accessToken:="Tu token de acceso de la sección de autenticación"
ARRAY TEXT ($searchArrHeadAttr;0)
ARRAY TEXT ($searchArrHeadValue;0)
APPEND TO ARRAY ($searchArrHeadAttr; "Authorization")
APPEND TO ARRAY ($searchArrHeadValue; "Bearer "+$accessToken)

$query:="paz"
$url :="https://api.twitter.com/1.1/search/tweets.json?q="+$query
$result :=HTTP Request(HTTP GET method;$url;$searchBody;$searchReponse;$searchArrHeadAttr;$searchArrHeadValue;*)

En el depurador, arrastra la variable $searchResponse a la ventana de Expresión, y verás que el resultado contiene palabras clave que coinciden con nuestra consulta.

blank

A continuación se muestra una respuesta JSON simplificada para la palabra clave «peace «:

{ 
 "status":[ 
 { 
 "created_at": "Tue Nov 21 09:51:09 +0000 2017",
 "id":932909235528183808,
 "id_str": "932909235528183808",
 "text": "RT @AraiEij: @pintsize73 \N-Que tu cumpleaños y todos los días estén 
 llenos de amor, paz y alegría",
....
        "retweeted_status":{ 
 "created_at": "Sun Nov 19 05:48:49 +0000 2017",
 "id":932123476025946112,
 "id_str": "932123476025946112",
 "text": 
 "@pintsize73 Feliz Cumpleaños querida Marie \N-Que tu cumpleaños y todos los días estén llenos de amor, paz",
 "truncated":true,
 "entities":{ 
 "hashtags":[],
 "user_mentions":[ 
 {...}
 ],
 "urls":[]
 },
 "metadata":{ 
 "iso_language_code": "en",
 "result_type": "recent"
 }
        }
     }
  ],
 "search_metadata":{ 
...
     "query": "Paz",
 "refresh_url":"?since_id=932909235528183808&q=Paz&include_entities=1",
...}
}

Y aquí un vistazo a la interfaz de usuario de los resultados de la búsqueda: blank

Vea más con nuestro ejemplo

Echa un vistazo a nuestro ejemplo de aplicación. Tenga en cuenta que este ejemplo requiere que siga algunos de los pasos descritos. De hecho, necesitarás obtener tus tokens de acceso a Twitter para ejecutar la demo.

Ejemplo: Cómo utilizar la API de búsqueda de Twitter

Avatar
• Gerente de Mercadeo de Producto - Intissar ingresó a 4D en 2017 como Gerente de Mercadeo de Producto. Trabaja estrechamente con los equipos de producto, mercadeo, ingeniería y soporte técnico para destacar el "por qué", el "cómo" y el "qué" de las funcionalidades nuevas y actualizadas a diferentes audiencias. Esta proximidad le permite elaborar marcos de mensajería y escribir contenidos en profundidad y muestras de código para el blog y el sitio web de 4D. Después de graduarse como ingeniera en Ciencias de la Computación en la universidad de VINCI, Intissar trabajó en varias startups como ingeniera de software. Su experiencia práctica incluye la especificación, el diseño y el desarrollo de software, la formación y el apoyo a los usuarios y la gestión de equipos.