Wie man die Such-API von Twitter mit 4D nutzt

Automatisch übersetzt von Deepl

Angesichts von rund 6.000 Tweets pro Sekunde( d. h. über 350.000 Tweets pro Minute, 500 Millionen Tweets pro Tag, was etwa 200 Milliarden Tweets pro Jahr entspricht) wäre es großartig, wenn wir nach Tweets zu einem bestimmten Thema suchen könnten, anstatt nach einer Lawine von Tweets, die uns nicht interessieren. Gute Nachrichten! Twitter bietet eine REST-Such-API, die sich hervorragend für die Suche nach Tweets eignet.

In diesem Beitrag erfahren Sie, wie Sie die Such-API von Twitter mit 4D nutzen können(Sprung zum Datenbankbeispiel).

Twitter Zugangstoken

Um die Such-API von Twitter zu nutzen, benötigen Sie Zugriffstoken. Diese sind erforderlich, um Anfragen an die API zu senden. Um diese Token zu erhalten, müssen Sie eine Twitter-Anwendung erstellen (ein kostenloser, aber notwendiger Schritt):

  1. Erstellen Sie ein Twitter-Konto (falls Sie noch keins haben).
  2. Gehen Sie zu https://dev.twitter.com/apps/new und melden Sie sich an.
  3. Klicken Sie auf die Schaltfläche „Neue App erstellen“, füllen Sie das Formular aus, stimmen Sie den Bedingungen zu und klicken Sie auf die Schaltfläche „Ihre Twitter-Anwendung erstellen“.
  4. Kopieren Sie als Nächstes auf der Registerkarte „Keys and Access Tokens“ Ihren „API-Schlüssel“ und Ihr „API-Geheimnis“.

  5. Scrollen Sie nach unten und klicken Sie auf „Create my access token“. Kopieren Sie Ihr „Access Token“ und Ihr „Access Token Secret“. Damit erteilen Sie Ihrem Twitter-Konto Zugriff auf diese API. Dann werden Sie sehen:

    blank

Hinweis: Diese Token sind genauso sensibel wie Passwörter und dürfen nicht an Unbefugte weitergegeben oder verteilt werden.

Authentifizierung

Jetzt, da wir unsere Token haben, können wir uns die Hände schmutzig machen und den Authentifizierungscode schreiben. Dazu verwenden wir das Verfahren„Application-only authentication„. Damit kann eine Anwendung authentifizierte Anfragen für sich selbst und nicht im Namen eines bestimmten Benutzers stellen. Dieser Prozess erfordert, dass eine Anwendung:

  • ihren Verbraucherschlüssel und ihr Geheimnis verschlüsseln.
  • eine Anfrage an den POST oauth2 / token Endpunkt stellen, um diese Anmeldeinformationen gegen ein Inhaber-Token auszutauschen.
  • dieses Träger-Token für die Authentifizierung beim Zugriff auf die REST-API zu verwenden.

So geht’s mit 4D:

  • Verketten Sie den Verbraucherschlüssel und das verschlüsselte Verbrauchergeheimnis in eine einzige Zeichenkette mit einem Doppelpunkt „:“.
  • Konvertieren Sie Ihren String in ein BLOB mit dem TEXT TO BLOB Befehl.
  • Kodiere den Blob mit dem BASE64 ENCODE Befehl.

SET BLOB SIZE(vxBlob;0)
$consumerKey :="Ihr Kundenschlüssel hier"
$consumerSecret :="Ihr Kundengeheimnis hier"
TEXT TO BLOB ($consumerKey+": "+$consumerSecret; vxBlob; UTF8 text without length)
BASE64 ENCODE (vxBlob; $authBasicTxt)

  • Der resultierende Wert muss durch eine Anfrage an POST oauth2 / token gegen ein Inhaber-Token ausgetauscht werden. Diese Anforderung erfolgt mit dem Befehl 4D HTTP Request Befehl und dem Selektor HTTP POST method gestellt. Sie muss eine Kopfzeile Authorization und eine Kopfzeile Content-Type enthalten, wobei der Körper der Anfrage wie folgt lautet 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;*)

  • Vergewissern Sie sich, dass Ihre HTTP-Anfrage erfolgreich war, indem Sie überprüfen, ob der Statuscode der Antwort 200 ist. (Mehr über HTTP-Statuscodes)
  • Parsen Sie die HTTP-Antwort mit dem JSON Parse und speichern Sie dann den Wert der Eigenschaft access_token in einer Variablen.

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

  • Dieses Inhaber-Token wird verwendet, um eine Anfrage an unsere Such-API zu stellen (Details im Abschnitt Suche nach Tweets ). Kopieren Sie es also und bewahren Sie es gut auf.

blank

Suche nach Tweets

Der komplizierte Teil ist vorbei. Jetzt, da wir unser Zugriffstoken haben, können wir es verwenden, um eine Anfrage an GET search/tweets.json zu stellen:

$accessToken:="Ihr Zugriffstoken aus dem Authentifizierungsabschnitt"
ARRAY TEXT ($searchArrHeadAttr;0)
ARRAY TEXT ($searchArrHeadValue;0)
APPEND TO ARRAY ($searchArrHeadAttr; "Autorisierung")
APPEND TO ARRAY ($searchArrHeadValue; "Bearer "+$accessToken)

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

Ziehen Sie im Debugger Ihre Variable $searchResponse in das Ausdrucksfenster, und Sie werden feststellen, dass das Ergebnis Schlüsselwörter enthält, die unserer Abfrage entsprechen.

blank

Unten sehen Sie eine vereinfachte JSON-Antwort für das Schlüsselwort „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 Happy Birthday liebe Marie \\May 
 your birthday and every day be filled with love, peace",
 "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",
...}
}

Und hier ist ein kleiner Einblick in die Benutzeroberfläche des Suchergebnisses: blank

Mehr sehen mit unserem Beispiel

Sehen Sie sich unser Anwendungsbeispiel an! Bitte beachten Sie, dass dieses Beispiel erfordert, dass Sie einige der beschriebenen Schritte ausführen. Tatsächlich müssen Sie Ihre Twitter-Zugangs-Token erhalten , um die Demo auszuführen.

Beispiel: Verwendung der Such-API von Twitter

Avatar
- Product Marketing Manager Intissar kam 2017 als Product Marketing Manager zu 4D. Sie arbeitet eng mit den Produkt-, Marketing-, Engineering- und technischen Support-Teams zusammen, um den verschiedenen Zielgruppen das "Warum", das "Wie" und das "Was" neuer und aktualisierter Funktionen zu vermitteln. Diese enge Zusammenarbeit ermöglicht es ihr, Botschaften zu formulieren und ausführliche Inhalte und Codebeispiele für den 4D Blog und die Website zu schreiben. Nach ihrem Abschluss als Diplom-Ingenieurin für Informatik an der VINCI Universität arbeitete Intissar als Software-Ingenieurin in mehreren Startups. Ihre praktische Erfahrung umfasst Software-Spezifikation, -Design und -Entwicklung, User-Training und -Support sowie Team-Management.