מבוא ל- Twitter4J

1. סקירה כללית

במאמר זה נבחן את השימוש ב- Twitter4J ביישום Java כדי לתקשר עם Twitter.

2. Twitter4J

Twitter4J היא ספריית Java פתוחה, המספקת ממשק API נוח לגישה ל- API של Twitter.

במילים פשוטות, כך נוכל ליצור אינטראקציה עם ממשק ה- API של טוויטר; אנחנו יכולים:

  • פרסם ציוץ
  • קבלו ציר זמן של משתמש, עם רשימת הציוצים האחרונים
  • שלח וקבל הודעות ישירות
  • חפש ציוצים ועוד ועוד

ספריה זו מבטיחה שנוכל לבצע פעולות אלה בקלות, והיא גם מבטיחה את האבטחה והפרטיות של המשתמש - שבאופן טבעי אנו צריכים להגדיר אישורי OAuth באפליקציה שלנו.

3. תלות Maven

עלינו להתחיל ולהגדיר את התלות עבור Twitter4J שלנו pom.xml:

 org.twitter4j twitter4j-stream 4.0.6 

כדי לבדוק אם שוחררה גרסה חדשה כלשהי של הספרייה - עקוב אחר המהדורות כאן.

4. תצורה

קביעת התצורה של Twitter4J היא קלה וניתנת לביצוע בדרכים שונות - למשל בקובץ טקסט רגיל או בכיתה Java או אפילו באמצעות משתני סביבה.

בואו נסתכל על כל אחת מהדרכים הללו, אחת בכל פעם.

4.1. קובץ טקסט רגיל

אנו יכולים להשתמש בקובץ טקסט רגיל בשם twitter4j. נכסים - להחזיק את פרטי התצורה שלנו. בואו נסתכל על המאפיינים שיש לספק:

oauth.consumerKey = // המפתח שלך oauth.consumerSecret = // הסוד שלך oauth.accessToken = // האסימון שלך oauth.accessTokenSecret = // סוד האסימון שלך

ניתן להשיג את כל המאפיינים הללו מקונסולת המפתחים של Twitter לאחר יצירת אפליקציה חדשה.

4.2. מחלקת Java

אנו יכולים גם להשתמש בכיתה ConfigurationBuilder כדי להגדיר את Twitter4J באופן תכנותי ב- Java:

ConfigurationBuilder cb = ConfigurationBuilder חדש (); cb.setDebugEnabled (true) .setOAuthConsumerKey ("מפתח הצרכן שלך) .setOAuthConsumerSecret (" סוד הצרכן שלך "). setOAuthAccessToken (" אסימון הגישה שלך "). setOAuthAccessTokenSecret (" סוד האסימון שלך לגישה "); TwitterFactory tf = TwitterFactory חדש (cb.build ()); טוויטר טוויטר = tf.getInstance ();

שים לב שנשתמש ב- טוויטר למשל בחלק הבא - כאשר אנו מתחילים להביא נתונים.

4.3. משתני סביבה

קביעת תצורה באמצעות משתני סביבה היא ברירה נוספת שיש לנו. אם נעשה זאת, שים לב שנצטרך twitter4j קידומת במשתנים שלנו:

$ export twitter4j.oauth.consumerKey = // המפתח שלך $ export twitter4j.oauth.consumerSecret = // הסוד שלך $ export twitter4j.oauth.accessToken = // אסימון הגישה שלך $ export twitter4j.oauth.accessTokenSecret = // אסימון הגישה שלך סוֹד

5. הוספה / אחזור נתוני ציוץ בזמן אמת

עם יישום מוגדר לחלוטין, נוכל סוף סוף לקיים אינטראקציה עם טוויטר.

בואו נסתכל על כמה דוגמאות.

5.1. פרסם ציוץ

נתחיל בעדכון ציוץ בטוויטר:

מחרוזת ציבורית createTweet (מחרוזת ציוץ) זורק את TwitterException {טוויטר טוויטר = getTwitterinstance (); סטטוס סטטוס = twitter.updateStatus ("יצירת ממשק API של baeldung"); return status.getText (); }

על ידי שימוש ב status.getText (), נוכל לאחזר את הציוץ שפורסם זה עתה.

5.2. קבל את ציר הזמן

אנו יכולים גם להביא רשימה של ציוצים מקו הזמן של המשתמש:

רשימה ציבורית getTimeLine () זורק את TwitterException {טוויטר טוויטר = getTwitterinstance (); להחזיר twitter.getHomeTimeline (). stream () .map (item -> item.getText ()) .collect (Collectors.toList ()); }

על ידי שימוש ב twitter.getHomeTimeline (), אנו מקבלים את כל הציוצים לפי מזהה החשבון הנוכחי.

5.3. שלח הודעה ישירה

שליחה וקבלה של הודעה ישירה לעוקבים אפשרית גם באמצעות Twitter4j:

מחרוזת סטטית ציבורית sendDirectMessage (מחרוזת מקבל שם, מחרוזת msg) זורק את TwitterException {Twitter twitter = getTwitterinstance (); הודעת DirectMessage = twitter.sendDirectMessage (recipientName, msg); return return.getText (); }

ה sendDirectMessage השיטה לוקחת שני פרמטרים:

  • שם הנמען: שם המשתמש של הטוויטר של מקבל ההודעה
  • הודעה: תוכן ההודעה

אם הנמען לא נמצא, sendDirectMessage ישליך חריג עם קוד חריג 150.

5.4. חפש ציוצים

אנו יכולים גם לחפש ציוצים המכילים טקסט כלשהו. על ידי כך נקבל רשימה של ציוצים עם שם המשתמשים.

בואו נראה כיצד ניתן לבצע חיפוש כזה:

רשימה סטטית ציבורית searchtweets () זורק את TwitterException {Twitter twitter = getTwitterinstance (); שאילתת שאילתה = שאילתה חדשה ("מקור: twitter4j baeldung"); תוצאת QueryResult = twitter.search (שאילתה); return result.getTweets (). stream () .map (item -> item.getText ()) .collect (Collectors.toList ()); }

ברור שאנו יכולים לחזור על כל ציוץ שמתקבל ב QueryResult ולהביא נתונים יחסית.

5.5. ממשק ה- API לסטרימינג

ממשק ה- API של הזרמת טוויטר שימושי כאשר נדרשים עדכונים בזמן אמת; הוא מטפל ביצירת חוטים ומקשיב לאירועים.

בואו ליצור מאזין שמאזין לעדכוני ציוץ ממשתמש:

חלל סטטי ציבורי streamFeed () {StatusListener מאזין = StatusListener חדש () {@Override חלל ציבורי onException (Exception e) {e.printStackTrace (); } @Override Public void onDeletionNotice (StatusDeletionNotice arg) {} @Override public void onScrubGeo (long userId, long upToStatusId) {} ​​@Override public public void onStallWarning (StallWarning אזהרה) {} @Override Public void onStatus) חלל ציבורי onTrackLimitationNotice (int numberOfLimitedStatuses) {}}; TwitterStream twitterStream = חדש TwitterStreamFactory (). GetInstance (); twitterStream.addListener (מאזין); twitterStream.sample (); }

אנחנו יכולים לשים כמה println () הצהרה לבדוק את זרם ציוץ הפלט בכל השיטות. לכל הציוצים יש מטה נתונים של מיקום המשויכים אליו.

שים לב כי כל נתוני הציוצים שנאספו על ידי ה- API הם בפורמט UTF-8 ומכיוון שטוויטר היא פלטפורמה מרובת שפות, ייתכן שפורמט נתונים מסוים אינו ניתן לזיהוי בהתבסס על מקורו.

6. מסקנה

מאמר זה היה מבוא מהיר אך מקיף לשימוש ב- Twitter4J עם Java.

ניתן למצוא את יישום הדוגמאות המוצגות ב- GitHub - זהו פרויקט מבוסס Maven, כך שיהיה קל לייבא ולהפעיל אותו כפי שהוא. השינוי היחיד שעלינו לעשות הוא להכניס אישורי OAuth משלנו.


$config[zx-auto] not found$config[zx-overlay] not found