Comment utiliser l’API de recherche de Twitter avec 4D

Traduit automatiquement de Deepl

Étant donné qu’il y a environ 6 000 tweets par seconde(soit plus de 350 000 tweets par minute, 500 millions de tweets par jour, ce qui équivaut à environ 200 milliards de tweets par an), il serait formidable de pouvoir rechercher ceux qui sont liés à un sujet spécifique plutôt qu’une avalanche de tweets qui ne nous intéressent pas. Bonne nouvelle ! Twitter fournit une API de recherche REST qui est idéale pour rechercher des tweets.

Dans cet article, nous verrons comment utiliser l’API de recherche de Twitter avec 4D (passer à l’exemple de la base de données).

jetons d’accès twitter

Pour utiliser l’API de recherche de Twitter, vous avez besoin de jetons d’accès. C’est obligatoire pour envoyer des requêtes à l’API. Afin d’obtenir ces jetons, vous devez créer une application Twitter (une étape gratuite, mais nécessaire ) :

  1. Créez un compte Twitter (si vous n’en avez pas déjà un).
  2. Allez sur https://dev.twitter.com/apps/new et connectez-vous.
  3. Cliquez sur le bouton « Créer une nouvelle application », remplissez le formulaire, acceptez les conditions et cliquez sur le bouton « Créer votre application Twitter ».
  4. Ensuite, dans l’onglet « Clés et jetons d’accès », copiez votre « clé API » et votre « secret API ».

  5. Faites défiler la page et cliquez sur « Créer mon jeton d’accès ». Copiez votre « jeton d’accès » et votre « secret du jeton d’accès ». En faisant cela, vous donnez à votre compte Twitter l’accès à l’utilisation de cette API. Ensuite, vous verrez :

    blank

Remarque: Ces jetons doivent être considérés comme aussi sensibles que les mots de passe et ne doivent pas être partagés ou distribués à des parties non fiables.

Authentification

Maintenant que nous avons nos jetons, mettons la main à la pâte et écrivons le code d’authentification. Pour cela, nous allons utiliser le processus« Application-only authentication« . Cela permet à une application d’émettre des requêtes authentifiées pour elle-même, et non au nom d’un utilisateur spécifique. Ce processus exige que l’application

  • coder sa clé et son secret de consommateur.
  • faire une demande au point de terminaison POST oauth2 / token pour échanger ces informations d’identification contre un jeton de porteur.
  • utiliser ce jeton porteur pour l’authentification lors de l’accès à l’API REST.

Voici comment procéder avec 4D :

  • Concaténer la clé du consommateur et le secret du consommateur encodé en une seule chaîne avec le caractère deux-points  » : ».
  • Convertissez votre chaîne en BLOB avec la commande TEXT TO BLOB commande.
  • Encoder le blob avec la commande BASE64 ENCODE commande.

SET BLOB SIZE(vxBlob;0 )
$consumerKey :="votre clé de consommateur ici"
$consumerSecret :="votre secret de consommateur ici"
TEXT TO BLOB ($consumerKey+ " : "+$consumerSecret; vxBlob; UTF8 text without length)
BASE64 ENCODE (vxBlob; $authBasicTxt)

  • La valeur résultante doit être échangée contre un jeton porteur en émettant une requête POST oauth2 / token. Cette requête est effectuée avec la commande 4D HTTP Request et le sélecteur HTTP POST method. Elle doit inclure un en-tête Authorization et un en-tête Content-Type, le corps de la demande étant le suivant 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;*)

  • Assurez-vous que votre requête HTTP a abouti, en vérifiant que le code d’état de la réponse est 200. (En savoir plus sur les codes d’état HTTP)
  • Analysez la réponse HTTP avec la commande JSON Parse puis stocke la valeur de la propriété access_token dans une variable.

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

  • Ce jeton de porteur sera utilisé pour émettre une requête à notre API de recherche (détails dans la section recherche de tweets ). Copiez-le donc et gardez-le à portée de main.

blank

recherche de tweets

La partie compliquée est terminée. Maintenant que nous avons notre jeton d’accès, nous pouvons l’utiliser pour envoyer une requête à GET search/tweets.json:

$accessToken:="Votre jeton d'accès de la section d'authentification"
ARRAY TEXT ($searchArrHeadAttr;0)
ARRAY TEXT ($searchArrHeadValue;0)
APPEND TO ARRAY ($searchArrHeadAttr; "Authorization")
APPEND TO ARRAY ($searchArrHeadValue; "Bearer "+$accessToken)

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

Dans le débogueur, faites glisser votre variable $searchResponse dans la fenêtre Expression, et vous remarquerez que le résultat contient des mots-clés correspondant à notre requête.

blank

Vous trouverez ci-dessous une réponse JSON simplifiée pour le mot-clé « peace »:

{ 
 "statuses" :[ 
 { 
 "created_at" : "Tue Nov 21 09:51:09 +0000 2017",
 "id":932909235528183808,
 "id_str" : "932909235528183808",
 "text" : "RT @AraiEij : @pintsize73 \nMay your birthday and every day be 
 filled with love, peace and joy",
....
        "retweeted_status":{ 
 "created_at" : "Sun Nov 19 05:48:49 +0000 2017",
 "id":932123476025946112,
 "id_str" : "932123476025946112",
 "text" :"@pintsize73 Joyeux anniversaire chère Marie ! 
 que ton anniversaire et chaque jour soient remplis d'amour et de paix",
 "truncated":true,
 "entities":{ 
 "hashtags" :[],
 "user_mentions" :[ 
 {.....}
 ],
 "urls" :[]
 },
 "metadata":{ 
 "iso_language_code" : "en",
 "result_type" : "recent"
 }
        }
     }
  ],
 "search_metadata":{ 
...
     "query" : "Peace",
 "refresh_url" : "?since_id=932909235528183808&q=Peace&include_entities=1",
...}
} }

Et voici un aperçu de l’interface utilisateur du résultat de la recherche : blank

Voir plus avec notre exemple

Découvrez notre exemple d’application ! Veuillez noter que cet exemple nécessite que vous suiviez certaines des étapes décrites. En fait, vous devrez obtenir vos jetons d’accès twitter pour exécuter la démo.

Exemple : Comment utiliser l’API de recherche de Twitter

Avatar
- Responsable du marketing produit - Intissar a rejoint 4D en 2017 en tant que responsable du marketing produit. Elle travaille en étroite collaboration avec les équipes de produits, de marketing, d'ingénierie et de support technique pour mettre en évidence le " pourquoi ", le " comment " et le " quoi " des nouvelles fonctionnalités et des mises à jour auprès de différents publics. Cette proximité lui permet d'élaborer des cadres de messages et de rédiger des contenus approfondis et des échantillons de code pour le blog et le site Web de 4D.Après avoir obtenu un diplôme d'ingénieur en informatique à l'université VINCI, Intissar a travaillé dans plusieurs startups en tant qu'ingénieur logiciel. Son expérience pratique comprend la spécification, la conception et le développement de logiciels, la formation et l'assistance aux utilisateurs, ainsi que la gestion d'équipe.