Pengenalan kepada Twitter4J

1. Gambaran keseluruhan

Dalam artikel ini, kita akan melihat penggunaan Twitter4J dalam aplikasi Java untuk berkomunikasi dengan Twitter.

2. Twitter4J

Twitter4J adalah perpustakaan Java sumber terbuka, yang menyediakan API yang mudah untuk mengakses API Twitter.

Ringkasnya, inilah cara kita dapat berinteraksi dengan Twitter API; kita boleh:

  • Hantarkan tweet
  • Dapatkan garis masa pengguna, dengan senarai tweet terbaru
  • Hantar dan terima mesej langsung
  • Cari tweet dan banyak lagi

Perpustakaan ini memastikan bahawa kita dapat melakukan operasi ini dengan mudah, dan juga memastikan keselamatan dan privasi pengguna - yang secara semula jadi kita perlu mempunyai kelayakan OAuth dalam aplikasi kita.

3. Pergantungan Maven

Kita perlu memulakan dengan menentukan kebergantungan untuk Twitter4J di pom.xml kami :

 org.twitter4j twitter4j-stream 4.0.6 

Untuk memeriksa sama ada versi perpustakaan baru telah dikeluarkan - jejak siarannya di sini.

4. Konfigurasi

Mengkonfigurasi Twitter4J mudah dan boleh dilakukan dengan pelbagai cara - contohnya dalam fail teks biasa atau kelas Java atau bahkan menggunakan pemboleh ubah persekitaran.

Mari kita perhatikan setiap cara ini, satu demi satu.

4.1. Fail Teks Biasa

Kita boleh menggunakan fail teks biasa - bernama twitter4j.properties - untuk menyimpan butiran konfigurasi kami. Mari lihat sifat-sifat yang perlu disediakan:

oauth.consumerKey = // your key oauth.consumerSecret = // your secret oauth.accessToken = // your token oauth.accessTokenSecret = // your token secret

Semua atribut ini dapat diperoleh dari konsol Pengembang Twitter setelah anda membuat aplikasi baru.

4.2. Kelas Java

Kami juga dapat menggunakan kelas ConfigurationBuilder untuk mengkonfigurasi Twitter4J secara terprogram di Java:

ConfigurationBuilder cb = new ConfigurationBuilder(); cb.setDebugEnabled(true) .setOAuthConsumerKey("your consumer key") .setOAuthConsumerSecret("your consumer secret") .setOAuthAccessToken("your access token") .setOAuthAccessTokenSecret("your access token secret"); TwitterFactory tf = new TwitterFactory(cb.build()); Twitter twitter = tf.getInstance();

Perhatikan bahawa kami akan menggunakan contoh Twitter di bahagian seterusnya - ketika kami mulai mengambil data.

4.3. Pemboleh ubah Persekitaran

Mengkonfigurasi pemboleh ubah persekitaran adalah pilihan lain yang kita ada. Sekiranya kita melakukannya, perhatikan bahawa kita memerlukan awalan twitter4j dalam pemboleh ubah kita:

$ export twitter4j.oauth.consumerKey = // your key $ export twitter4j.oauth.consumerSecret = // your secret $ export twitter4j.oauth.accessToken = // your access token $ export twitter4j.oauth.accessTokenSecret = // your access token secret

5. Menambah / Mengambil Data Tweet Masa Nyata

Dengan aplikasi yang dikonfigurasi sepenuhnya, akhirnya kita dapat berinteraksi dengan Twitter.

Mari lihat beberapa contoh.

5.1. Hantar Tweet

Kami akan mulakan dengan mengemas kini tweet di Twitter:

public String createTweet(String tweet) throws TwitterException { Twitter twitter = getTwitterinstance(); Status status = twitter.updateStatus("creating baeldung API"); return status.getText(); }

Dengan menggunakan status.getText (), kita dapat mengambil tweet yang baru sahaja diposkan.

5.2. Dapatkan Garis Masa

Kami juga dapat mengambil senarai tweet dari garis masa pengguna:

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

Dengan menggunakan twitter.getHomeTimeline (), kami mendapat semua tweet yang disiarkan oleh ID akaun semasa.

5.3. Hantar Mesej Langsung

Menghantar dan menerima mesej langsung kepada pengikut juga dapat dilakukan dengan menggunakan Twitter4j:

public static String sendDirectMessage(String recipientName, String msg) throws TwitterException { Twitter twitter = getTwitterinstance(); DirectMessage message = twitter.sendDirectMessage(recipientName, msg); return message.getText(); }

The sendDirectMessage kaedah mengambil masa dua parameter:

  • Nama Penerima : nama pengguna twitter penerima mesej
  • msg : kandungan mesej

Sekiranya penerima tidak dijumpai, sendDirectMessage akan membuang pengecualian dengan kod pengecualian 150 .

5.4. Cari Tweet

Kami juga boleh mencari tweet yang mengandungi beberapa teks. Dengan melakukan ini, kita akan mendapat senarai tweet dengan nama pengguna.

Mari lihat bagaimana carian sedemikian dapat dilakukan:

public static List searchtweets() throws TwitterException { Twitter twitter = getTwitterinstance(); Query query = new Query("source:twitter4j baeldung"); QueryResult result = twitter.search(query); return result.getTweets().stream() .map(item -> item.getText()) .collect(Collectors.toList()); }

Jelas, kita dapat melakukan rutin setiap tweet yang diterima dalam QueryResult dan mengambil data relatif.

5.5. API Penstriman

Twitter Streaming API berguna apabila kemas kini diperlukan dalam masa nyata; ia mengendalikan penciptaan benang dan mendengar peristiwa.

Mari buat pendengar yang mendengar tweet kemas kini dari pengguna:

public static void streamFeed() { StatusListener listener = new StatusListener() { @Override public void onException(Exception e) { e.printStackTrace(); } @Override public void onDeletionNotice(StatusDeletionNotice arg) { } @Override public void onScrubGeo(long userId, long upToStatusId) { } @Override public void onStallWarning(StallWarning warning) { } @Override public void onStatus(Status status) { } @Override public void onTrackLimitationNotice(int numberOfLimitedStatuses) { } }; TwitterStream twitterStream = new TwitterStreamFactory().getInstance(); twitterStream.addListener(listener); twitterStream.sample(); }

Kita boleh meletakkan beberapa pernyataan println () untuk memeriksa aliran tweet output dalam semua kaedah. Semua tweet mempunyai metadata lokasi yang berkaitan dengannya.

Harap perhatikan bahawa semua data tweet yang diambil oleh API dalam format UTF-8 dan oleh kerana Twitter adalah platform berbilang bahasa, beberapa format data mungkin tidak dapat dikenali berdasarkan asal usulnya.

6. Kesimpulannya

Artikel ini adalah pengenalan ringkas tetapi komprehensif untuk menggunakan Twitter4J dengan Java.

Pelaksanaan contoh yang ditunjukkan boleh didapati di GitHub - ini adalah projek berasaskan Maven, jadi mudah untuk diimport dan dijalankan sebagaimana adanya. Satu-satunya perubahan yang perlu kita lakukan adalah memasukkan bukti kelayakan OAuth kita sendiri.