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.