Uvod u Twitter4J

1. Pregled

U ovom ćemo članku pogledati upotrebu Twitter4J u Java aplikaciji za komunikaciju s Twitterom.

2. Twitter4J

Twitter4J je Java biblioteka otvorenog koda, koja pruža prikladan API za pristup Twitter API-ju.

Jednostavno rečeno, evo kako možemo komunicirati s Twitter API-jem; možemo:

  • Objavite tweet
  • Dohvatite vremensku traku korisnika s popisom najnovijih tweetova
  • Slanje i primanje izravnih poruka
  • Potražite tweetove i još mnogo toga

Ova biblioteka osigurava lako obavljanje ovih operacija, a također osigurava sigurnost i privatnost korisnika - za što prirodno moramo imati konfigurirane vjerodajnice OAuth u našoj aplikaciji.

3. Ovisnosti Mavena

Moramo započeti definiranjem ovisnosti za Twitter4J u našem pom.xml:

 org.twitter4j twitter4j-stream 4.0.6 

Da biste provjerili je li izdana neka nova verzija knjižnice, izdanja pratite ovdje.

4. Konfiguracija

Konfiguriranje Twitter4J-a jednostavno je i može se izvesti na razne načine - na primjer u običnoj tekstualnoj datoteci ili Java klasi ili čak korištenjem varijabli okruženja.

Pogledajmo svaki od ovih načina, jedan po jedan.

4.1. Datoteka s običnim tekstom

Možemo koristiti običnu tekstualnu datoteku - nazvanu twitter4j.properties - da čuvamo naše detalje o konfiguraciji. Pogledajmo svojstva koja treba osigurati:

oauth.consumerKey = // vaš ključ oauth.consumerSecret = // vaša tajna oauth.accessToken = // vaš token oauth.accessTokenSecret = // vaša tajna tokena

Sve ove atribute možete dobiti na Twitter Developer console nakon što izradite novu aplikaciju.

4.2. Razred Java

Također možemo koristiti klasu ConfigurationBuilder za programsko konfiguriranje Twitter4J na Javi:

ConfigurationBuilder cb = novi ConfigurationBuilder (); cb.setDebugEnabled (true) .setOAuthConsumerKey ("vaš potrošački ključ") .setOAuthConsumerSecret ("vaša potrošačka tajna") .setOAuthAccessToken ("vaš pristupni token") .setOAuthAccessTokenSecret ("vaša tajna pristupnog tokena"); TwitterFactory tf = novi TwitterFactory (cb.build ()); Twitter twitter = tf.getInstance ();

Imajte na umu da ćemo koristiti Cvrkut primjer u sljedećem odjeljku - kad počnemo dohvaćati podatke.

4.3. Varijable okoline

Konfiguriranje putem varijabli okoline je još jedan izbor koji imamo. Ako to učinimo, imajte na umu da će nam trebati twitter4j prefiks u našim varijablama:

$ export twitter4j.oauth.consumerKey = // vaš ključ $ export twitter4j.oauth.consumerSecret = // vaš tajni $ export twitter4j.oauth.accessToken = // vaš token za pristup $ export twitter4j.oauth.accessTokenSecret = // vaš pristupni token tajna

5. Dodavanje / preuzimanje podataka o Tweetu u stvarnom vremenu

S potpuno konfiguriranom aplikacijom konačno možemo komunicirati s Twitterom.

Pogledajmo nekoliko primjera.

5.1. Objavite Tweet

Za početak ćemo ažurirati tweet na Twitteru:

javni String createTweet (String tweet) baca TwitterException {Twitter twitter = getTwitterinstance (); Status statusa = twitter.updateStatus ("stvaranje baeldung API-ja"); vratiti status.getText (); }

Pomoću status.getText (), možemo dobiti upravo objavljeni tweet.

5.2. Dohvati vremensku traku

Također možemo dohvatiti popis tweetova s ​​vremenske trake korisnika:

javni popis getTimeLine () baca TwitterException {Twitter twitter = getTwitterinstance (); vratiti twitter.getHomeTimeline (). stream () .map (item -> item.getText ()) .collect (Collectors.toList ()); }

Pomoću twitter.getHomeTimeline (), dobivamo sve tweetove objavljene prema ID-u tekućeg računa.

5.3. Pošaljite izravnu poruku

Slanje i primanje izravne poruke sljedbenicima također je moguće pomoću Twitter4j:

javni statički String sendDirectMessage (String primatelj, String msg) baca TwitterException {Twitter twitter = getTwitterinstance (); Poruka DirectMessage = twitter.sendDirectMessage (Ime primatelja, poruka); vratiti poruku.getText (); }

The sendDirectMessage metoda uzima dva parametra:

  • Ime primatelja: twitter korisničko ime primatelja poruke
  • poruka: sadržaj poruke

Ako primatelj neće biti pronađen, sendDirectMessage izbacit će iznimku s kodom iznimke 150.

5.4. Potražite tweetove

Također možemo pretraživati ​​tweetove koji sadrže neki tekst. Na taj ćemo način dobiti popis tweetova s ​​korisničkim imenom korisnika.

Pogledajmo kako se takvo pretraživanje može izvršiti:

javni statični popis searchtweets () baca TwitterException {Twitter twitter = getTwitterinstance (); Upit upita = novi upit ("izvor: twitter4j baeldung"); Rezultat QueryResult = twitter.search (upit); vratiti rezultat.getTweets (). stream () .map (item -> item.getText ()) .collect (Collectors.toList ()); }

Jasno je da možemo ponavljati svaki tweet primljen u Rezultat upita i dohvatiti relativne podatke.

5.5. API za strujanje

Twitter Streaming API koristan je kada su ažuriranja potrebna u stvarnom vremenu; obrađuje stvaranje niti i osluškuje događaje.

Stvorimo slušatelja koji od korisnika sluša ažuriranja tweetova:

javna statička void streamFeed () {StatusListener listener = novi StatusListener () {@Preuzmi javnu prazninu onException (izuzetak e) {e.printStackTrace (); } @Override public void onDeletionNotice (statusDeletionNotice arg) {} @Override public void onScrubGeo (long userId, long upToStatusId) {} ​​@Override public void onStallWarning (StallWarning upozorenje) {} @Override javno stanje void onverde {status javna praznina onTrackLimitationNotice (int numberOfLimitedStatuses) {}}; TwitterStream twitterStream = novi TwitterStreamFactory (). GetInstance (); twitterStream.addListener (slušatelj); twitterStream.sample (); }

Možemo staviti malo println () izjava za provjeru izlaznog tweet-a u svim metodama. Svi tweetovi povezani su s metapodacima lokacije.

Imajte na umu da su svi podaci o tweetovima koje API preuzima u formatu UTF-8, a budući da je Twitter višejezična platforma, neki format podataka možda neće biti prepoznatljiv na temelju svog porijekla.

6. Zaključak

Ovaj je članak bio brz, ali sveobuhvatan uvod u upotrebu Twitter4J s Javom.

Implementacija prikazanih primjera može se naći na GitHub-u - ovo je projekt zasnovan na Mavenu, pa bi ga trebalo lako uvesti i pokrenuti kakav jest. Jedina promjena koju trebamo napraviti je umetanje vlastitih OAuth vjerodajnica.