Come utilizzare l’API di ricerca di Twitter con 4D

Tradotto automaticamente da Deepl

Dato che ci sono circa 6.000 tweet al secondo(cioè oltre 350.000 tweet al minuto, 500 milioni di tweet al giorno, pari a circa 200 miliardi di tweet all’anno), sarebbe bello poter cercare quelli relativi a un argomento specifico piuttosto che una valanga di tweet che non ci interessano. Buone notizie! Twitter fornisce un’ API di ricerca REST che è ottima per la ricerca dei tweet.

In questo post parleremo di come utilizzare l’API di ricerca di Twitter con 4D (salto all’esempio del database).

token di accesso a twitter

Per utilizzare l’API di ricerca di Twitter, è necessario disporre di token di accesso. Questo è obbligatorio per inviare richieste all’API. Per ottenere questi token, è necessario creare un’applicazione Twitter (un passaggio gratuito, ma necessario ):

  1. Create un account Twitter (se non ne avete già uno).
  2. Andate su https://dev.twitter.com/apps/new e accedete.
  3. Fare clic sul pulsante “Crea nuova applicazione”, compilare il modulo, accettare i termini e fare clic sul pulsante “Crea la tua applicazione Twitter”.
  4. Quindi, nella scheda “Chiavi e token di accesso”, copiate la “chiave API” e il “segreto API”.

  5. Scorrete verso il basso e fate clic su “Crea il mio token di accesso”. Copiare il “token di accesso” e il “segreto del token di accesso”. In questo modo, date al vostro account Twitter l’accesso all’utilizzo di questa API. Poi vedrete:

    blank

Nota: questi token devono essere considerati sensibili come le password e non devono essere condivisi o distribuiti a persone non fidate.

Autenticazione

Ora che abbiamo i nostri token, sporchiamoci le mani e scriviamo il codice di autenticazione. Per questo, useremo il processo di“Autenticazione solo per applicazioni“. Questo consente a un’applicazione di inviare richieste autenticate per se stessa e non per conto di un utente specifico. Questo processo richiede che un’applicazione

  • codifichi la propria chiave del consumatore e il proprio segreto.
  • faccia una richiesta all’endpoint POST oauth2 / token per scambiare queste credenziali con un token bearer.
  • utilizzare questo token per l’autenticazione quando si accede all’API REST.

Ecco come si fa con 4D:

  • Concatenare la chiave del consumatore e il segreto del consumatore codificato in un’unica stringa con i due punti “:”.
  • Convertire la stringa in un BLOB con il comando TEXT TO BLOB con il comando
  • Codificare il blob con il comando BASE64 ENCODE con il comando

SET BLOB SIZE(vxBlob;0)
$consumerKey :="la chiave del consumatore qui"
$consumerSecret :="il segreto del consumatore qui"
TEXT TO BLOB ($consumerKey+": "+$consumerSecret; vxBlob; UTF8 text without length)
BASE64 ENCODE (vxBlob; $authBasicTxt)

  • Il valore risultante deve essere scambiato con un token del portatore, inviando una richiesta a POST oauth2 / token. Questa richiesta viene effettuata con il comando 4D HTTP Request e il selettore HTTP POST method. Deve includere un’intestazione Authorization e una Content-Type, con il corpo della richiesta come 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;*)

  • Assicurarsi che la richiesta HTTP sia andata a buon fine, verificando che il codice di stato della risposta sia 200. (Per saperne di più sui codici di stato HTTP). (Ulteriori informazioni sui codici di stato HTTP)
  • Analizzare la risposta HTTP con il comando JSON Parse quindi memorizzare il valore della proprietà access_token in una variabile.

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

  • Questo token del portatore sarà usato per inviare una richiesta alla nostra API di ricerca (dettagli nella sezione Ricerca di tweet ). Quindi copiatelo e tenetelo a portata di mano.

blank

ricerca di tweet

La parte complicata è finita. Ora che abbiamo il nostro token di accesso, possiamo usarlo per inviare una richiesta a GET search/tweets.json:

$accessToken:="Il vostro token di accesso dalla sezione di autenticazione"
ARRAY TEXT ($searchArrHeadAttr;0)
ARRAY TEXT ($searchArrHeadValue;0)
APPEND TO ARRAY ($searchArrHeadAttr; "Authorization")
APPEND TO ARRAY ($searchArrHeadValue; "Bearer "+$accessToken)

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

Nel debugger, trascinare la variabile $searchResponse nella finestra Expression e si noterà che il risultato contiene parole chiave che corrispondono alla nostra query.

blank

Di seguito è riportata una risposta JSON semplificata per la parola chiave “peace”:

{ 
 "statuses":[ 
 { 
 "created_at": "Tue Nov 21 09:51:09 +0000 2017",
 "id":932909235528183808,
 "id_str": "932909235528183808",
 "text": "RT @AraiEij: @pintsize73 \\nPossa il tuo compleanno e ogni giorno essere 
 pieno di amore, pace e gioia",
....
        "retweeted_status":{ 
 "created_at": "Sun Nov 19 05:48:49 +0000 2017",
 "id":932123476025946112,
 "id_str": "932123476025946112",
 "text":"@pintsize73 Buon compleanno cara Marie \\nMay 
 tuo compleanno e ogni giorno sia pieno di amore, pace",
 "truncated":true,
 "entities":{ 
 "hashtags":[],
 "user_mentions":[ 
 {...}
 ],
 "urls":[]
 },
 "metadata":{ 
 "iso_language_code": "en",
 "result_type": "recent"
 }
        }
     }
  ],
 "search_metadata":{ 
...
     "query": "Pace",
 "refresh_url":"?since_id=932909235528183808&q=Peace&include_entities=1",
...}
}

Ed ecco un’anteprima dell’interfaccia utente dei risultati della ricerca: blank

Per saperne di più con il nostro esempio

Date un’occhiata al nostro esempio di applicazione! Si noti che questo esempio richiede di seguire alcuni dei passaggi descritti. Infatti, per eseguire la demo è necessario ottenere i token di accesso a Twitter .

Esempio: Come utilizzare l’API di ricerca di Twitter

Avatar
- Product Marketing Manager - Intissar è entrata in 4D nel 2017 come Product Marketing Manager. Lavora a stretto contatto con i team di prodotto, marketing, ingegneria e supporto tecnico per evidenziare il "perché", il "come" e il "cosa" delle nuove funzionalità e di quelle aggiornate a diversi pubblici. Questa vicinanza le consente di creare strutture di messaggistica e di scrivere contenuti approfonditi ed esempi di codice per il blog e il sito web di 4D. Dopo aver conseguito la laurea in Informatica presso l'università VINCI, Intissar ha lavorato in diverse startup come ingegnere informatico. La sua esperienza pratica comprende le specifiche, la progettazione e lo sviluppo del software, la formazione e il supporto agli utenti e la gestione del team.