Jak používat vyhledávací rozhraní API Twitteru pomocí 4D

Automaticky přeloženo z Deepl

Vzhledem k tomu, že každou sekundu přichází přibližně 6 000 tweetů( tj. více než 350 000 tweetů za minutu, 500 milionů tweetů denně, což odpovídá přibližně 200 miliardám tweetů ročně), bylo by skvělé, kdybychom mohli vyhledávat ty, které se týkají konkrétního tématu, a ne lavinu tweetů, které nás nezajímají. Dobrá zpráva! Twitter poskytuje rozhraní REST Search API, které je pro vyhledávání tweetů skvělé.

V tomto příspěvku probereme, jak použít rozhraní Twitter Search API s aplikací 4D (Přejít na příklad databáze).

přístupové tokeny twitteru

Chcete-li používat rozhraní API pro vyhledávání Twitteru, potřebujete přístupové tokeny. Ty jsou povinné pro odesílání požadavků na rozhraní API. Abyste tyto tokeny získali, musíte si vytvořit aplikaci Twitter ( bezplatný, ale nezbytný krok):

  1. Vytvořte si účet Twitter (pokud jej ještě nemáte).
  2. Přejděte na stránku https://dev.twitter.com/apps/new a přihlaste se.
  3. Klikněte na tlačítko „Create New App“ (Vytvořit novou aplikaci), vyplňte formulář, odsouhlaste podmínky a klikněte na tlačítko „Create your Twitter application“ (Vytvořit aplikaci Twitter).
  4. Dále na kartě „Keys and Access Tokens“ zkopírujte svůj „API key“ a „API secret“.

  5. Přejděte dolů a klikněte na „Create my access token“. Zkopírujte svůj „Access token“ a „Access token secret“. Tím udělíte svému účtu Twitter přístup k používání tohoto rozhraní API. Poté se vám zobrazí následující informace:

    blank

Poznámka: Tyto tokeny by měly být považovány za stejně citlivé jako hesla a nesmí být sdíleny nebo distribuovány nedůvěryhodným stranám.

ověřování

Nyní, když máme své tokeny, si zašpiníme ruce a napíšeme ověřovací kód. K tomu použijeme postup„Ověřování pouze pomocí aplikace„. Ten umožňuje aplikaci vydávat ověřené požadavky za sebe, nikoli jménem konkrétního uživatele. Tento proces vyžaduje, aby aplikace:

  • zakódovat svůj spotřebitelský klíč a tajemství.
  • provést požadavek na koncový bod POST oauth2 / token a vyměnit tato pověření za token na doručitele.
  • použít tento token nositele pro ověření při přístupu k rozhraní REST API.

Zde je návod, jak to provést pomocí 4D:

  • Klíč spotřebitele a zakódované tajemství spotřebitele spojte do jednoho řetězce se znakem dvojtečky „:“.
  • Převeďte svůj řetězec na BLOB pomocí příkazu TEXT TO BLOB příkazem.
  • Zakódujte blob příkazem BASE64 ENCODE příkazem.

SET BLOB SIZE(vxBlob;0)
$consumerKey :="zde je váš spotřebitelský klíč"
$consumerSecret :="zde je vaše spotřebitelské tajemství"
TEXT TO BLOB ($consumerKey+": "+$consumerSecret; vxBlob; UTF8 text without length)
BASE64 ENCODE (vxBlob; $authBasicTxt).

  • Výslednou hodnotu je třeba vyměnit za token nositele zadáním požadavku POST oauth2 / token. Tento požadavek se provádí pomocí příkazu 4D HTTP Request a selektorem HTTP POST method. Musí obsahovat hlavičku Authorization a Content-Type, přičemž tělo požadavku je ve tvaru 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;*)

  • Ujistěte se, že požadavek HTTP byl úspěšný, a to ověřením, že stavový kód odpovědi je 200. (Více informací o stavových kódech HTTP)
  • Odpověď HTTP rozeberte pomocí příkazu JSON Parse příkazem a poté uložte hodnotu vlastnosti access_token do proměnné.

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

  • Tento token nositele bude použit k vystavení požadavku na naše vyhledávací rozhraní API (podrobnosti v části vyhledávání tweetů ). Proto si jej zkopírujte a mějte jej u sebe.

blank

vyhledávání tweetů

Složitá část je u konce. Nyní, když máme náš přístupový token, můžeme jej použít k vystavení požadavku na GET search/tweets.json:

$accessToken:="Váš přístupový token ze sekce ověřování"
ARRAY TEXT ($searchArrHeadAttr;0)
ARRAY TEXT ($searchArrHeadValue;0)
APPEND TO ARRAY ($searchArrHeadAttr; "Autorizace")
APPEND TO ARRAY ($searchArrHeadValue; "Nosič "+$accessToken)

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

V ladicím programu přetáhněte proměnnou $searchResponse do okna Expression a všimněte si, že výsledek obsahuje klíčová slova odpovídající našemu dotazu.

blank

Níže je uvedena zjednodušená odpověď JSON pro klíčové slovo „peace „:

{ 
 "statuses":[ 
 { 
 "created_at": "Tue Nov 21 09:51:09 +0000 2017",
 "id":932909235528183808,
 "id_str": "932909235528183808",
 "text": "RT @AraiEij: @pintsize73 \\nAť jsou tvé narozeniny a každý den 
 naplněny láskou, mírem a radostí",
....
        "retweeted_status":{ 
 "created_at": "Sun Nov 19 05:48:49 +0000 2017",
 "id":932123476025946112,
 "id_str": "932123476025946112",
 "text":"@pintsize73 Všechno nejlepší, drahá Marie \\nAť jsou 
 tvé narozeniny a každý den naplněny láskou, mírem",
 "truncated":true,
 "entities":{ 
 "hashtags":[],
 "user_mentions":[ 
 {...}
 ],
 "urls":[]
 },
 "metadata":{ 
 "iso_language_code": "cs",
 "result_type": "recent"
 }
        }
     }
  ],
 "search_metadata":{ 
...
     "query": "Peace",
 "refresh_url":"?since_id=932909235528183808&q=Peace&include_entities=1",
...}
}

A zde je náhled do uživatelského rozhraní výsledku vyhledávání: blank

Podívejte se na další náš příklad

Podívejte se na náš příklad aplikace! Vezměte prosím na vědomí, že tento příklad vyžaduje provedení některých popsaných kroků. Ve skutečnosti budete muset získat přístupové tokeny pro Twitter , abyste mohli ukázku spustit.

Příklad: V příkladu je uveden příklad, který se vztahuje k aplikaci Twitter: Jak používat rozhraní API vyhledávání Twitteru

Avatar
• Produktový marketingový manažer • Intissar nastoupila do 4D v roce 2017 jako produktový marketingový manažer. Úzce spolupracuje s týmy produktovými, marketingovými, inženýrskými a technické podpory, aby aby sdělila různému publiku „proč“, „jak“ a „co“ o nových a aktualizovaných funkcích. Tato úzká spolupráce jí umožňuje formulovat zprávy a psát hloubkový obsah a příklady kódu pro 4D blog a web. Po absolvování inženýrského titulu v oboru informatiky na univerzitě VINCI pracovala Intissar v několika startupech jako softwarový inženýr. Mezi její praktické zkušenosti patří specifikace softwaru, návrh a vývoj, školení a podpora uživatelů a správa týmu.