Presentation is loading. Please wait.

Presentation is loading. Please wait.

Linked Data & Semantic Web Technology Development of Twitter Applications Part 4. Timeline and Tweet Dr. Myungjin Lee.

Similar presentations


Presentation on theme: "Linked Data & Semantic Web Technology Development of Twitter Applications Part 4. Timeline and Tweet Dr. Myungjin Lee."— Presentation transcript:

1 Linked Data & Semantic Web Technology Development of Twitter Applications Part 4. Timeline and Tweet Dr. Myungjin Lee

2 Linked Data & Semantic Web Technology Timeline Home Timeline – a long stream showing all Tweets from those you have chosen to follow on Twitter home timeline 2

3 Linked Data & Semantic Web Technology Timeline user timeline mentions timeline retweets of me 3

4 Linked Data & Semantic Web Technology REST API related to Timeline Timelines – Timelines are collections of Tweets, ordered with the most recent first. ResourceDescription GET statuses/mentions_timeline Returns the 20 most recent mentions (tweets containing a users's @screen_name) for the authenticating user GET statuses/user_timeline Returns a collection of the most recent Tweets posted by the user indicated by the screen_name or user_id parameters GET statuses/home_timeline Returns a collection of the most recent Tweets and retweets posted by the authenticating user and the users they follow GET statuses/retweets_of_me Returns the most recent tweets authored by the authenticating user that have been retweeted by others 4

5 Linked Data & Semantic Web Technology Responses of Timeline REST API 1.[ 2. { 3. "created_at": "Mon Mar 25 08:47:46 +0000 2013", 4. "id": 316109141032714240, 5. "id_str": "316109141032714240", 6. "text": "RT @wonsoonpark: 이 협동조합국제회의에는...", 7. "source": "web", 8. "truncated": false, 9. "in_reply_to_status_id": null, 10. "in_reply_to_status_id_str": null, 11. "in_reply_to_user_id": null, 12. "in_reply_to_user_id_str": null, 13. "in_reply_to_screen_name": null, 14. "user": { 15. "id": 92297124, 16. "id_str": "92297124" 17. }, 18. "geo": null, 19. "coordinates": null, 20. "place": null, 21. "contributors": null, 22. "retweeted_status": { 23.... skip... 24. }, 25. "retweet_count": 27, 26. "favorite_count": 0, 27. "entities": { 28. "hashtags": [], 29. "urls": [], 30. "user_mentions": [ 31. { 32. "screen_name": "wonsoonpark", 33. "name": " 박원순 ", 34. "id": 76295962, 35. "id_str": "76295962", 36. "indices": [ 37. 3, 38. 15 39. ] 40. } 41. ] 42. }, 43. "favorited": false, 44. "retweeted": false, 45. "lang": "ko" 46. } 47.] 5

6 Linked Data & Semantic Web Technology Tweets Primary Field Guide 6 FieldTypeDescription coordinatesCoordinates Nullable. Represents the geographic location of this Tweet as reported by the user or client application. created_atStringUTC time when this Tweet was created. entitiesEntities Entities which have been parsed out of the text of the Tweet. favorite_countInteger Nullable. Indicates approximately how many times this Tweet has been "favorited" by Twitter users. idInt64 The integer representation of the unique identifier for this Tweet. id_strString The string representation of the unique identifier for this Tweet. in_reply_to_screen_nameString Nullable. If the represented Tweet is a reply, this field will contain the screen name of the original Tweet's author. in_reply_to_status_id_strString Nullable. If the represented Tweet is a reply, this field will contain the string representation of the original Tweet's ID. in_reply_to_user_id_strString Nullable. If the represented Tweet is a reply, this field will contain the string representation of the original Tweet's author ID. placePlaces Nullable. When present, indicates that the tweet is associated a Place. retweet_countIntNumber of times this Tweet has been retweeted. textStringThe actual UTF-8 text of the status update. userUsersThe user who posted this Tweet.

7 Linked Data & Semantic Web Technology Twitter4J Classes for Timeline API TimelinesResources Interface – interface to support REST API related to timeline – Methods ResponseList getHomeTimeline() ResponseList getHomeTimeline(Paging paging) ResponseList getMentionsTimeline() ResponseList getMentionsTimeline(Paging paging) ResponseList getRetweetsOfMe() ResponseList getRetweetsOfMe(Paging paging) ResponseList getUserTimeline() ResponseList getUserTimeline(Paging paging) ResponseList getUserTimeline(long userId) ResponseList getUserTimeline(java.lang.String screenName) Paging Class – controls pagination – Constructors Paging(int page, int count, long sinceId, long maxId) ResponseList Interface – list of Twitter Response Status Interface – a data interface representing one single status of a user – Methods java.util.Date getCreatedAt() long getId() Status getRetweetedStatus() java.lang.String getText() User getUser() 7

8 Linked Data & Semantic Web Technology GET statuses/home_timeline Resource URL – https://api.twitter.com/1.1/statuses/home_timeline.json Parameters Other Information – Requests per rate limit window: 15/user – Authentication: Requires user context – Response Object: Tweets – API Version: v1.1 count optional Specifies the number of records to retrieve. Must be less than or equal to 200. Defaults to 20. since_id optional Returns results with an ID greater than (that is, more recent than) the specified ID. There are limits to the number of Tweets which can be accessed through the API. If the limit of Tweets has occured since the since_id, the since_id will be forced to the oldest ID available. max_id optional Returns results with an ID less than (that is, older than) or equal to the specified ID. trim_user optional When set to either true, t or 1, each tweet returned in a timeline will include a user object including only the status authors numerical ID. Omit this parameter to receive the complete user object. exclude_replies optional This parameter will prevent replies from appearing in the returned timeline. Using exclude_replies with the count parameter will mean you will receive up-to count tweets — this is because the count parameter retrieves that many tweets before filtering out retweets and replies. contributor_details optional This parameter enhances the contributors element of the status response to include the screen_name of the contributor. By default only the user_id of the contributor is included. include_entities optional The entities node will be disincluded when set to false. 8

9 Linked Data & Semantic Web Technology Getting Home Timeline 1.import java.util.List; 2.import twitter4j.Twitter; 3.import twitter4j.TwitterException; 4.import twitter4j.TwitterFactory; 5.import twitter4j.Status; 6.public class TwitterTimeline { 7.Twitter twitter = null; 8.public TwitterTimeline() { 9.this.twitter = TwitterFactory.getSingleton(); 10.this.twitter.setOAuthConsumer(TwitterAccessToken.consumerKey, 11.TwitterAccessToken.consumerSecret); 12.this.twitter.setOAuthAccessToken(TwitterAccessToken.loadAccessToken()); 13.} 14.public static void main(String args[]) throws TwitterException { 15.TwitterTimeline tt = new TwitterTimeline(); 16.List tweets = tt.twitter.getHomeTimeline(); 17.for (int i = 0; i < tweets.size(); i++) { 18.Status tweet = tweets.get(i); 19.System.out.println("tweet: " + tweet.getText()); 20.} 21.} 22.} 9

10 Linked Data & Semantic Web Technology Setting Pagination Constructors of Paging Class – Paging() – Paging(int page) – Paging(int page, int count) – Paging(int page, int count, long sinceId) – Paging(int page, int count, long sinceId, long maxId) – Paging(int page, long sinceId) – Paging(long sinceId) 1.public static void main(String args[]) throws TwitterException { 2.TwitterTimeline tt = new TwitterTimeline(); 3.List tweets = tt.twitter.getHomeTimeline(new Paging(1, 5)); 4.for (int i = 0; i < tweets.size(); i++) { 5.Status tweet = tweets.get(i); 6.System.out.println("tweet: " + tweet.getText()); 7.} 8.} 9.private List getHomeTimeline() throws TwitterException { 10.return this.twitter.getHomeTimeline(); 11.} 10

11 Linked Data & Semantic Web Technology Getting Status of Tweets 1.public static void main(String args[]) throws TwitterException { 2.TwitterTimeline tt = new TwitterTimeline(); 3.List tweets = tt.twitter.getHomeTimeline(); 4.for (int i = 0; i < tweets.size(); i++) { 5.Status tweet = tweets.get(i); 6.System.out.println(i + " tweet:"); 7.System.out.println("\tcreated at: " + tweet.getCreatedAt()); 8.System.out.println("\tid: " + tweet.getId()); 9.System.out.println("\tretweet count: " + tweet.getRetweetCount()); 10.System.out.println("\ttext: " + tweet.getText()); 11.System.out.println("\tuser: " + tweet.getUser()); 12.} 13.} 11

12 Linked Data & Semantic Web Technology GET statuses/user_timeline Resource URL – https://api.twitter.com/1.1/statuses/user_timeline.json Parameters Other Information – Requests per rate limit window: 180/user, 300/app – Authentication: Required – Response Object: Tweets – API Version: v1.1 user_id optional The ID of the user for whom to return results for. screen_name optional The screen name of the user for whom to return results for. count optional Specifies the number of records to retrieve. Must be less than or equal to 200. Defaults to 20. since_id optional Returns results with an ID greater than (that is, more recent than) the specified ID. There are limits to the number of Tweets which can be accessed through the API. If the limit of Tweets has occured since the since_id, the since_id will be forced to the oldest ID available. max_id optional Returns results with an ID less than (that is, older than) or equal to the specified ID. trim_user optional When set to either true, t or 1, each tweet returned in a timeline will include a user object including only the status authors numerical ID. Omit this parameter to receive the complete user object. exclude_replies optional This parameter will prevent replies from appearing in the returned timeline. Using exclude_replies with the count parameter will mean you will receive up-to count tweets — this is because the count parameter retrieves that many tweets before filtering out retweets and replies. contributor_details optional This parameter enhances the contributors element of the status response to include the screen_name of the contributor. By default only the user_id of the contributor is included. include_rts optional When set to false, the timeline will strip any native retweets (though they will still count toward both the maximal length of the timeline and the slice selected by the count parameter). Note: If you're using the trim_user parameter in conjunction with include_rts, the retweets will still contain a full user object. 12

13 Linked Data & Semantic Web Technology Getting User Timeline 1.public static void main(String args[]) throws TwitterException { 2.TwitterTimeline tt = new TwitterTimeline(); 3.List tweets = tt.twitter.getUserTimeline(92297124); 4.//List tweets = tt.twitter.getUserTimeline("linked_data"); 5.for (int i = 0; i < tweets.size(); i++) { 6.Status tweet = tweets.get(i); 7.System.out.println("text: " + tweet.getText()); 8.} 9.} 13

14 Linked Data & Semantic Web Technology GET statuses/mentions_timeline Resource URL – https://api.twitter.com/1.1/statuses/mentions_timeline.json Parameters Other Information – Requests per rate limit window: 15/user – Authentication: Requires user context – Response Object: Tweets – API Version: v1.1 count optional Specifies the number of records to retrieve. Must be less than or equal to 200. Defaults to 20. since_id optional Returns results with an ID greater than (that is, more recent than) the specified ID. There are limits to the number of Tweets which can be accessed through the API. If the limit of Tweets has occured since the since_id, the since_id will be forced to the oldest ID available. max_id optional Returns results with an ID less than (that is, older than) or equal to the specified ID. trim_user optional When set to either true, t or 1, each tweet returned in a timeline will include a user object including only the status authors numerical ID. Omit this parameter to receive the complete user object. contributor_details optional This parameter enhances the contributors element of the status response to include the screen_name of the contributor. By default only the user_id of the contributor is included. include_entities optional The entities node will be disincluded when set to false. 14

15 Linked Data & Semantic Web Technology GET statuses/retweet_of_me Resource URL – https://api.twitter.com/1.1/statuses/retweets_of_me.json Parameters Other Information – Requests per rate limit window: 15/user – Authentication: Requires user context – Response Object: Tweets – API Version: v1.1 count optional Specifies the number of records to retrieve. Must be less than or equal to 200. Defaults to 20. since_id optional Returns results with an ID greater than (that is, more recent than) the specified ID. There are limits to the number of Tweets which can be accessed through the API. If the limit of Tweets has occured since the since_id, the since_id will be forced to the oldest ID available. max_id optional Returns results with an ID less than (that is, older than) or equal to the specified ID. trim_user optional When set to either true, t or 1, each tweet returned in a timeline will include a user object including only the status authors numerical ID. Omit this parameter to receive the complete user object. include_entities optional The entities node will be disincluded when set to false. include_user_entities optional The user entities node will be disincluded when set to false 15

16 Linked Data & Semantic Web Technology Mentions Timeline and Retweets 1.public static void main(String args[]) throws TwitterException { 2.TwitterTimeline tt = new TwitterTimeline(); 3.//List tweets = tt.twitter.getMentionsTimeline(); 4.List tweets = tt.twitter.getRetweetsOfMe(); 5.for (int i = 0; i < tweets.size(); i++) { 6.Status tweet = tweets.get(i); 7.System.out.println("text: " + tweet.getText()); 8.} 9.} 16

17 Linked Data & Semantic Web Technology Tweets What is tweets? – the atomic building blocks of Twitter – 140-character status updates with additional associated metadata – for a variety of reasons about a multitude of topics tweet retweets count retweet 17

18 Linked Data & Semantic Web Technology REST API related to Tweets 18 ResourceDescription GET statuses/retweets/:id Returns up to 100 of the first retweets of a given tweet. GET statuses/show/:id Returns a single Tweet, specified by the id parameter. The Tweet's author will also be embedded within the tweet. See Embeddable Timelines, Embeddable Tweets, and GET statuses/oembed for tools to render Tweets according to Display Requirements.

19 Linked Data & Semantic Web Technology Twitter4J Classes for Tweet TweetsResources Interface – Methods ResponseList getRetweets(long statusId) Status retweetStatus(long statusId) Status showStatus(long id) 19

20 Linked Data & Semantic Web Technology GET statuses/show/:id Resource URL – https://api.twitter.com/1.1/statuses/show.json Parameters Other Information – Requests per rate limit window: 180/user, 180/app – Authentication: Required – Response Object: Tweets – API Version: v1.1 id required The numerical ID of the desired Tweet. trim_user optional When set to either true, t or 1, each tweet returned in a timeline will include a user object including only the status authors numerical ID. Omit this parameter to receive the complete user object. include_my_retweet optional When set to either true, t or 1, any Tweets returned that have been retweeted by the authenticating user will include an additional current_user_retweet node, containing the ID of the source status for the retweet. include_entities optional The entities node will be disincluded when set to false. 20

21 Linked Data & Semantic Web Technology Getting the Tweet 1.import java.util.List; 2.import twitter4j.Status; 3.import twitter4j.Twitter; 4.import twitter4j.TwitterException; 5.import twitter4j.TwitterFactory; 6.public class TwitterTweet { 7.Twitter twitter = null; 8.public TwitterTweet() { 9.this.twitter = TwitterFactory.getSingleton(); 10.this.twitter.setOAuthConsumer(TwitterAccessToken.consumerKey, 11.TwitterAccessToken.consumerSecret); 12.this.twitter.setOAuthAccessToken(TwitterAccessToken.loadAccessToken()); 13.} 14.public static void main(String args[]) throws TwitterException { 15. TwitterTweet tt = new TwitterTweet(); 16.Status status = tt.twitter.showStatus(Long.parseLong("319908547800481792")); 17.System.out.println("text: " + status.getText()); 18.} 19.} 21

22 Linked Data & Semantic Web Technology GET statuses/retweets/:id Resource URL – https://api.twitter.com/1.1/statuses/retweets/:id.json Parameters Other Information – Requests per rate limit window: 15/user, 60/app – Authentication: Required – Response Object: Tweets – API Version: v1.1 id required The numerical ID of the desired status. count optional Specifies the number of records to retrieve. Must be less than or equal to 100. trim_user optional When set to either true, t or 1, each tweet returned in a timeline will include a user object including only the status authors numerical ID. Omit this parameter to receive the complete user object. 22

23 Linked Data & Semantic Web Technology Getting Retweets 1.import java.util.List; 2.import twitter4j.Status; 3.import twitter4j.Twitter; 4.import twitter4j.TwitterException; 5.import twitter4j.TwitterFactory; 6.public class TwitterTweet { 7.Twitter twitter = null; 8.public TwitterTweet() { 9.this.twitter = TwitterFactory.getSingleton(); 10.this.twitter.setOAuthConsumer(TwitterAccessToken.consumerKey, 11.TwitterAccessToken.consumerSecret); 12.this.twitter.setOAuthAccessToken(TwitterAccessToken.loadAccessToken()); 13.} 14.public static void main(String args[]) throws TwitterException { 15. TwitterTweet tt = new TwitterTweet(); 16.List list = tt.twitter.getRetweets(Long 17..parseLong("319908547800481792")); 18.for (int i = 0; i < list.size(); i++) { 19.Status status = list.get(i); 20.System.out.println("retweet user: " + status.getUser().getName()); 21.} 22.} 23.} 23

24 Linked Data & Semantic Web Technology Tweet’s Entities Entities – to provide metadata and additional contextual information about content posted on Twitter Types of Entity – hashtags Represents hashtags which have been parsed out of the Tweet text – media Represents media elements uploaded with the Tweet – urls Represents URLs included in the text of a Tweet or within textual fields of a user object – user mentions Represents other Twitter users mentioned in the text of the Tweet 24

25 Linked Data & Semantic Web Technology Entities’ Field Guide Hashtag Media 25 FieldTypeDescription indicesArray of Int An array of integers indicating the offsets within the Tweet text where the hashtag begins and ends. textStringName of the hashtag, minus the leading '#' character. FieldTypeDescription display_urlStringURL of the media to display to clients. expanded_urlString An expanded version of display_url. Links to the media display page. idInt64ID of the media expressed as a 64-bit integer. id_strStringID of the media expressed as a string. indices Array of Int An array of integers indicating the offsets within the Tweet text where the URL begins and ends. media_urlStringAn http:// URL pointing directly to the uploaded media file. media_url_httpsString An https:// URL pointing directly to the uploaded media file, for embedding on https pages. sizesObjectAn object showing available sizes for the media file. source_status_idInt64 For Tweets containing media that was originally associated with a different tweet, this ID points to the original Tweet. source_status_id_strInt64 For Tweets containing media that was originally associated with a different tweet, this string-based ID points to the original Tweet. typeStringType of uploaded media. urlStringWrapped URL for the media link.

26 Linked Data & Semantic Web Technology Entities’ Field Guide URL User Mention 26 FieldTypeDescription display_urlStringVersion of the URL to display to clients. expanded_urlStringExpanded version of display_url. indicesArray of Int An array of integers representing offsets within the Tweet text where t he URL begins and ends. urlString Wrapped URL, corresponding to the value embedded directly into the raw Tweet text, and the values for the indices parameter. FieldTypeDescription idInt64ID of the mentioned user, as an integer. id_strStringIf of the mentioned user, as a string. indices Array of Int An array of integers representing the offsets within the Tweet text w here the user reference begins and ends. nameStringDisplay name of the referenced user. screen_nameStringScreen name of the referenced user.

27 Linked Data & Semantic Web Technology Twitter4J Classes for Entities Status Interface – Methods HashtagEntity[] getHashtagEntities() MediaEntity[] getMediaEntities() URLEntity[] getURLEntities() UserMentionEntity[] getUserMentionEntities() HashtagEntity Interface – A data interface representing one single Hashtag entity – Methods String getText() MediaEntity Interface – Methods long getId() String getMediaURL() String getType() URLEntity Interface – A data interface representing one single URL entity. – Methods String getDisplayURL() String getExpandedURL() String getURL() UserMentionEntity Interface – A data interface representing one single user mention entity. – Methods long getId() String getScreenName() 27

28 Linked Data & Semantic Web Technology Getting Entities 1.public static void main(String args[]) throws TwitterException { 2. TwitterTweet tt = new TwitterTweet(); 3.List tweets = tt.twitter.getHomeTimeline(); 4.for (int i = 0; i < tweets.size(); i++) { 5.Status tweet = tweets.get(i); 6.System.out.println("tweet id: " + tweet.getId()); 7.if(tweet.getHashtagEntities().length != 0) { 8.System.out.println("\thastags:"); 9.HashtagEntity[] hes = tweet.getHashtagEntities(); 10.for(int j = 0; j < hes.length; j++) { 11.System.out.println("\t\t" + hes[j].getText()); 12.} 13.} 14.if(tweet.getMediaEntities().length != 0) { 15.System.out.println("\tmedia:"); 16.MediaEntity[] mes = tweet.getMediaEntities(); 17.for(int j = 0; j < mes.length; j++) { 18.System.out.println("\t\t" + mes[j].getType() + ", " + mes[j].getMediaURL()); 19.} 20.} 21.if(tweet.getURLEntities().length != 0) { 22.System.out.println("\tURLs:"); 23.URLEntity[] urls = tweet.getURLEntities(); 24.for(int j = 0; j < urls.length; j++) { 25.System.out.println("\t\t" + urls[j].getExpandedURL()); 26.} 27.} 28.if(tweet.getUserMentionEntities().length != 0) { 29.System.out.println("\tmentions:"); 30.UserMentionEntity[] umes = tweet.getUserMentionEntities(); 31.for(int j = 0; j < umes.length; j++) { 32.System.out.println("\t\t" + umes[j].getScreenName()); 33.} 34.} 35.} 36.} 28


Download ppt "Linked Data & Semantic Web Technology Development of Twitter Applications Part 4. Timeline and Tweet Dr. Myungjin Lee."

Similar presentations


Ads by Google