Pengantar Twitter4J

1. Ikhtisar

Pada artikel ini, kita akan membahas penggunaan Twitter4J di aplikasi Java untuk berkomunikasi dengan Twitter.

2. Twitter4J

Twitter4J adalah pustaka Java sumber terbuka, yang menyediakan API yang nyaman untuk mengakses API Twitter.

Sederhananya, inilah cara kita berinteraksi dengan API Twitter; kita dapat:

  • Posting tweet
  • Dapatkan timeline pengguna, dengan daftar tweet terbaru
  • Mengirim dan menerima pesan langsung
  • Cari tweet dan banyak lagi

Pustaka ini memastikan bahwa kita dapat dengan mudah melakukan operasi ini, dan juga memastikan keamanan dan privasi pengguna - yang secara alami kita perlu mengonfigurasi kredensial OAuth di aplikasi kita.

3. Ketergantungan Maven

Kita perlu memulai dengan mendefinisikan ketergantungan untuk Twitter4J di pom.xml kita :

 org.twitter4j twitter4j-stream 4.0.6 

Untuk memeriksa apakah ada versi baru pustaka yang telah dirilis - lacak rilisnya di sini.

4. Konfigurasi

Mengonfigurasi Twitter4J mudah dan dapat dilakukan dengan berbagai cara - misalnya dalam file teks biasa atau kelas Java atau bahkan menggunakan variabel lingkungan.

Mari kita lihat masing-masing cara ini, satu per satu.

4.1. File Teks Biasa

Kita dapat menggunakan file teks biasa - bernama twitter4j.properties - untuk menyimpan detail konfigurasi kita. Mari kita lihat properti 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

Kita juga bisa 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 bahwa kami akan menggunakan instance Twitter di bagian selanjutnya - saat kami mulai mengambil data.

4.3. Variabel Lingkungan

Konfigurasi melalui variabel lingkungan adalah pilihan lain yang kami miliki. Jika kita melakukan itu, perhatikan bahwa kita membutuhkan awalan twitter4j di variabel 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. Menambahkan / Mengambil Data Tweet Real-Time

Dengan aplikasi yang terkonfigurasi penuh, kita akhirnya bisa berinteraksi dengan Twitter.

Mari kita lihat beberapa contoh.

5.1. Kirim sebuah Tweet

Kami akan mulai dengan memperbarui 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 saja diposting.

5.2. Dapatkan Timeline-nya

Kami juga dapat mengambil daftar tweet dari timeline 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 mendapatkan semua tweet yang diposting dengan ID akun saat ini.

5.3. Kirim Direct Message

Mengirim dan menerima pesan langsung ke pengikut juga dimungkinkan 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 Metode membutuhkan dua parameter:

  • RecipientName : nama pengguna twitter penerima pesan
  • msg : konten pesan

Jika penerima tidak dapat ditemukan, sendDirectMessage akan memunculkan pengecualian dengan kode pengecualian 150 .

5.4. Cari Tweet

Kami juga dapat mencari tweet yang berisi beberapa teks. Dengan melakukan ini, kita akan mendapatkan daftar tweet dengan nama pengguna pengguna.

Mari kita lihat bagaimana pencarian seperti itu 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 mengulang setiap tweet yang diterima di QueryResult dan mengambil data relatif.

5.5. API Streaming

Twitter Streaming API berguna saat pembaruan diperlukan dalam waktu nyata; itu menangani pembuatan utas dan mendengarkan acara.

Mari buat pendengar yang mendengarkan pembaruan tweet 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 bisa meletakkan beberapa pernyataan println () untuk memeriksa aliran tweet keluaran di semua metode. Semua tweet memiliki metadata lokasi yang terkait dengannya.

Harap perhatikan bahwa semua data tweet yang diambil oleh API dalam format UTF-8 dan karena Twitter adalah platform multi-bahasa, beberapa format data mungkin tidak dapat dikenali berdasarkan asalnya.

6. Kesimpulan

Artikel ini adalah pengantar cepat namun komprehensif untuk menggunakan Twitter4J dengan Java.

Penerapan contoh yang ditunjukkan dapat ditemukan di GitHub - ini adalah proyek berbasis Maven, jadi semestinya mudah untuk mengimpor dan menjalankannya apa adanya. Satu-satunya perubahan yang perlu kita lakukan adalah memasukkan kredensial OAuth kita sendiri.