Bevezetés a Twitter4J-be

1. Áttekintés

Ebben a cikkben áttekintjük a Twitter4J használatát egy Java alkalmazásban a Twitterrel való kommunikációhoz.

2. Twitter4J

A Twitter4J egy nyílt forráskódú Java könyvtár, amely kényelmes API-t biztosít a Twitter API eléréséhez.

Egyszerűen fogalmazva: így léphetünk kapcsolatba a Twitter API-val; tudunk:

  • Tegyen közzé egy tweetet
  • Szerezzen be egy felhasználó idővonalát a legfrissebb tweetek listájával
  • Küldjön és fogadjon közvetlen üzeneteket
  • Keressen tweeteket és még sok minden mást

Ez a könyvtár biztosítja, hogy ezeket a műveleteket könnyedén elvégezhessük, és biztosítja a felhasználó biztonságát és magánéletét is - ehhez természetesen az alkalmazásunkban konfigurálnunk kell az OAuth hitelesítő adatokat.

3. Maven-függőségek

Először meg kell határoznunk a Twitter4J függőségét pom.xml:

 org.twitter4j twitter4j-stream 4.0.6 

Annak ellenőrzéséhez, hogy a könyvtár új verziója megjelent-e, kövesse itt a kiadásokat.

4. Konfiguráció

A Twitter4J konfigurálása egyszerű és különféle módokon elvégezhető - például egyszerű szöveges fájlban vagy Java osztályban, vagy akár környezeti változók használatával.

Nézzük meg ezeket a módszereket, egyenként.

4.1. Sima szövegfájl

Használhatunk sima szöveges fájlt - névvel twitter4j.properties - konfigurációs adataink megőrzése. Nézzük meg a megadandó tulajdonságokat:

oauth.consumerKey = // kulcsa oauth.consumerSecret = // titkos oauth.accessToken = // jelzője oauth.accessTokenSecret = // jelző titka

Ezeket az attribútumokat a Twitter Developer Console-ból lehet beszerezni, miután új alkalmazást készített.

4.2. Java osztály

ConfigurationBuilder osztályt is használhatunk a Twitter4J programozott konfigurálására a Java-ban:

ConfigurationBuilder cb = new ConfigurationBuilder (); cb.setDebugEnabled (true) .setOAuthConsumerKey ("az Ön fogyasztói kulcsa") .setOAuthConsumerSecret ("a fogyasztói titok") .setOAuthAccessToken ("az Ön hozzáférési tokenje") .setOAuthAccessTokenSecret ("a hozzáférési token titka"); TwitterFactory tf = új TwitterFactory (cb.build ()); Twitter twitter = tf.getInstance ();

Ne feledje, hogy a Twitter például a következő szakaszban - amikor elkezdjük az adatok beolvasását.

4.3. Környezeti változók

Egy másik választás a környezeti változókon keresztül történő konfigurálás. Ha ezt megtesszük, vegye figyelembe, hogy szükségünk lesz egy twitter4j előtag a változókban:

$ export twitter4j.oauth.consumerKey = // kulcsod titok

5. Valós idejű tweetadatok hozzáadása / visszakeresése

Egy teljesen konfigurált alkalmazással végre kölcsönhatásba léphetünk a Twitter-szel.

Nézzünk néhány példát.

5.1. Tegyen közzé egy tweetet

Kezdjük egy tweet frissítésével a Twitteren:

public String createTweet (String tweet) dobja a TwitterException {Twitter twitter = getTwitterinstance (); Status status = twitter.updateStatus ("baeldung API létrehozása"); return status.getText (); }

Használva status.getText (), lekérhetjük a most közzétett tweetet.

5.2. Szerezd meg az Idővonalat

A tweetek listáját is lekérhetjük a felhasználó idővonaláról:

public list getTimeLine () dobja a TwitterException {Twitter twitter = getTwitterinstance (); return twitter.getHomeTimeline (). stream () .map (item -> item.getText ()) .collect (Collectors.toList ()); }

Használva twitter.getHomeTimeline (), az összes tweetet az aktuális számlaazonosítóval kapjuk meg.

5.3. Küldjön közvetlen üzenetet

A Twitter4j segítségével közvetlen üzenet küldése és fogadása a követőknek is lehetséges:

public static String sendDirectMessage (String recipientName, String msg) dobja a TwitterException {Twitter twitter = getTwitterinstance (); DirectMessage üzenet = twitter.sendDirectMessage (címzettNév, msg); return message.getText (); }

A sendDirectMessage A módszer két paramétert vesz fel:

  • A cimzett neve: az üzenet címzettjének twitter felhasználóneve
  • üzenet: üzenet tartalma

Ha a címzett nem található, a sendDirectMessage kivételt dob ​​kivételkóddal 150.

5.4. Tweetek keresése

Kereshetünk valamilyen szöveget tartalmazó tweetekre is. Ezzel megkapjuk a tweetek listáját a felhasználók felhasználónevével.

Nézzük meg, hogyan lehet egy ilyen keresést végrehajtani:

public static List searchtweets () dobja a TwitterException {Twitter twitter = getTwitterinstance (); Lekérdezés = új lekérdezés ("forrás: twitter4j baeldung"); QueryResult eredmény = twitter.search (lekérdezés); return result.getTweets (). stream () .map (item -> item.getText ()) .collect (Collectors.toList ()); }

Nyilvánvaló, hogy iterálni tudunk minden egyes tweetet, amelyet az a kapott QueryResult és hozza le a relatív adatokat.

5.5. A Streaming API

A Twitter Streaming API akkor hasznos, ha valós időben frissítésre van szükség; kezeli a szálkészítést és meghallgatja az eseményeket.

Hozzunk létre egy hallgatót, amely a felhasználók frissítéseinek tweetelésére figyel:

public static void streamFeed () {StatusListener listener = new StatusListener () {@Orride public void onException (e kivétel) {e.printStackTrace (); } @Orride public void onDeletionNotice (StatusDeletionNotice arg) {} @Orride public void onScrubGeo (long userId, long upToStatusId) {} ​​@Override public void onStallWarning (StallWarning warning) {} @Override public void onStatus (Status public void onTrackLimitationNotice (int numberOfLimitedStatuses) {}}; TwitterStream twitterStream = new TwitterStreamFactory (). GetInstance (); twitterStream.addListener (hallgató); twitterStream.sample (); }

Tudunk tenni néhányat println () utasítás az összes módszer kimeneti tweetfolyamának ellenőrzésére. Minden tweethez kapcsolódnak a hely metaadatai.

Felhívjuk figyelmét, hogy az API által letöltött összes tweet adat UTF-8 formátumú, és mivel a Twitter egy többnyelvű platform, előfordulhat, hogy egyes adatformátumok felismerhetetlenek származásuk alapján.

6. Következtetés

Ez a cikk gyors, de átfogó bevezetést jelentett a Twitter4J Java használatához.

A bemutatott példák megvalósítása megtalálható a GitHub-on - ez egy Maven-alapú projekt, ezért könnyen importálhatónak és futtathatónak kell lennie. Az egyetlen változás, amit meg kell tennünk, az a saját OAuth hitelesítő adatainak beillesztése.