Varför min Twitter?
Twitter är ett perfekt ställe att hämta data från. Här är några anledningar till varför detta är sant:
- Alla tweets på Twitter är offentliga
- De nya uppgifterna kommer i realtid, det betyder att du aldrig får slut på nya data att testa på
- Twitter har intressant API för utvecklare att hämta data från, de är också vänliga
- API: er som tillhandahålls av Twitter ger enkla sätt att dra tweets relaterade till en specifik användare eller till ett visst ord / hashtag eller tweets på en viss plats
Komma igång
Nu när vi har motiverat varför vi använder den här plattformen, låt oss börja samla in våra verktyg. Vi använder Java 8 för den här lektionen men använd gärna ovanstående versioner (även om vissa tweaks, inte tweets, kan behövas för att använda dem).
Vi kommer att använda ett Java-bibliotek som heter Twitter4J för att ansluta till Twitters API.
Skaffar Twitter API-nyckel
Att få Twitter API-nyckel är nödvändig för att få åtkomst till dess data eftersom det är så här Twitter håller reda på data och den begäran som räknas som vår applikation gör till Twitter.
Låt oss skapa en Twitter-app och få rätt tangenter för att gå vidare.
- Skapa en app här
I ovanstående form, skapa en applikation med ett unikt namn, ett webbplatsnamn (använd en platshållarwebbplats om du inte har en) och en projektbeskrivning. Acceptera villkoren (om du gör det) och fortsätt till nästa sida.
När projektet har skapats ska du se en sida med följande rubrik:
- I informationen nedan klickar du på fliken "Nycklar och åtkomsttoken" för att få följande information:
- Rulla ner och klicka på “Generate Access Tokens” för att få nedan information:
Vi kommer att behöva dessa värden senare så det är bättre att hålla den här fliken öppen.
Komma igång med Twitter4J
Twitter4J är en inofficiell Java-bibliotek för Twitter API. Med Twitter4J kan vi enkelt integrera vår Java-applikation med Twitter-tjänsten.
Maven-beroende
Till att börja med lägger vi till lämplig Maven-beroende i vårt Java-projekt.
Hitta den senaste versionen av beroendeberoende här.
Autentisering
Vi har lagt till nödvändigt Maven-beroende nu. Det är dags att vi börjar prata med API och Twitter.
För att starta konversationen måste vi autentisera våra samtal till Twitter så att den vet att endast en känd användare har åtkomst till data. För detta, låt oss ställa in våra nycklar som vi fick tidigare.
statisk slutsträng CONSUMER_KEY = "du-nyckel";statisk slutsträng CONSUMER_SECRET = "hemlig";
statisk slutlig sträng ACCESS_TOKEN = "token";
statisk slutsträng ACCESS_TOKEN_SECRET = "token-secret";
offentlig statisk Twitter getTwitterInstance ()
ConfigurationBuilder cb = ny ConfigurationBuilder ();
cb.setDebugEnabled (true) bashbash
.setOAuthConsumerKey (CONSUMER_KEY)
.setOAuthConsumerSecret (CONSUMER_SECRET)
.setOAuthAccessToken (ACCESS_TOKEN)
.setOAuthAccessTokenSecret (ACCESS_TOKEN_SECRET);
TwitterFactory tf = ny TwitterFactory (cb.bygga());
returnera tf.getInstance ();
Exempel: Visar tidslinje
I det här exemplet visar vi några senaste tweets från autentiserad användares tidslinje. Vi gör detta genom att använda Twitters objektstatusinstans som:
privat statisk ogiltig showHomeTimeline (Twitter twitter)Lista
Prova
status = twitter.getHomeTimeline ();
Systemet.ut.println ("Visar tidslinje för hem.");
för (Statusstatus: statuser)
Systemet.ut.println (status.getUser ().getName () + ":" + status.getText ());
String url = "https: // twitter.com / "+ status.getUser ().getScreenName () + "/ status /"
+ status.getId ();
Systemet.ut.println ("Ovan tweet URL:" + url);
fånga (TwitterException e)
e.printStackTrace ();
Resultatet ska se ut som en massa slumpmässiga tweets:
Genom att följa länken till tweeten kommer du ofta till själva tweeten. Att följa länken från den första tweet skulle ge oss följande resultat:
Förutom användarnamnet och tweettexten har Twitter API mycket information att ge som kan härledas från följande tillgängliga metoder:
status.getSource ();status.getCreatedAt ();
status.getFavoriteCount ();
status.getGeoLocation ();
status.getLang ();
status.getPlace ();
status.getRetweetCount ();
status.getUser ().getBiggerProfileImageURL ();
status.getUser ().getEmail ();
status.getUser ().getFollowersCount ();
status.getUser ().getFriendsCount ();
Detta ger mycket information relaterad till Tweet och användaren som publicerade tweeten. Dessa inkluderar inte alla metoder, gärna utforska alla tillgängliga metoder.
Observera att dessa attribut kan vara extremt användbara om din applikation beror på mer data.
Exempel: Lägg upp en Tweet
I det här exemplet lägger vi helt enkelt upp en ny tweet från vår kod eftersom användaren redan är autentiserad. Låt oss lägga lite exempelkod här:
privat statisk ogiltig uppdateringTweet (Twitter twitter, String tweet) kastar TwitterExceptionStatus status = twitter.updateStatus (tweet);
Systemet.ut.println ("Uppdaterade statusen till [" + status.getText () + "].");
Att publicera en ny tweet är så enkelt som det.
Exempel: Tweets från en specifik användare
Det är väldigt enkelt att få en annan användar-tweets, bara skicka ett användarnamn och API kommer att returnera några nyligen tweets för användaren.
Låt oss försöka dra de senaste tjugo tweetsna från Twitter-kontot @linuxhint:
Här är exempelkoden:
Listaför (Statusstatus: statuser)
Sträng fmt = "@" + status.getUser ().getScreenName () + "-" + status.getText ();
Systemet.ut.println (fmt);
När du kör det här programmet bör du se Tweets för LinuxHint.
Populära applikationer av denna typ av data kan inkludera:
- Kör analys på specifika användare och hur de interagerar med världen
- Hitta Twitter-influenser och analysera deras följaretrender och interaktioner
- Övervakning av ändringarna i en användares följare
Exempel: Hitta tweets med ett nyckelord
Låt oss göra ett sista exempel: Få de senaste tweets som innehåller ett nyckelord. Detta kan vara extremt användbart om du vill övervaka specifikt nämnda ämnen i Twitter-världen eller till och med för att se hur ditt företag nämns.
Låt oss säga att vi vill se hur Twitter nämnde Linux:
// searchTerm = Linuxprivat statisk ogiltig sökningTweets (Twitter twitter, String searchTerm) kastar TwitterException
Fråga fråga = ny fråga ("källa:" + searchTerm);
QueryResult-resultat = twitter.Sök fråga);
för (Statusstatus: resultat.getTweets ())
Systemet.ut.println ("@" + status.getUser ().getScreenName () + ":" + status.getText ());
Här är några praktiska sätt att använda denna information:
- Skapa en rumslig graf över var ditt företag nämns mest runt om i världen
- Kör sentimentanalys på tweets för att se om ditt företags övergripande åsikt är positivt eller negativt
- Skapa sociala diagram över de mest populära användarna som tweetar om ditt företag eller din produkt
Vi kan täcka några av dessa ämnen i framtida artiklar.
Twitters API är oerhört användbart i datagruppstillämpningar och kan ge stor insikt i den allmänna opinionen.