Hvorfor min Twitter?
Twitter er et perfekt sted at hente data fra. Her er nogle grunde til, at dette er sandt:
- Alle tweets på Twitter er offentlige
- De nye data kommer fortsat i realtid, det betyder, at du aldrig løber tør for nye data at teste på
- Twitter har interessant API for udviklere at hente data fra, de er også venlige
- API'er leveret af Twitter giver nemme måder at trække tweets relateret til en bestemt bruger eller til et bestemt ord / hashtag eller tweets et bestemt sted
Kom godt i gang
Nu hvor vi har begrundet, hvorfor vi bruger denne platform, lad os begynde at indsamle vores værktøjer. Vi bruger Java 8 til denne lektion, men du er velkommen til at bruge ovenstående versioner (selvom nogle tweaks, ikke tweets, muligvis er nødvendige for at bruge dem).
Vi bruger et Java-bibliotek kaldet Twitter4J til at oprette forbindelse til Twitters API.
Få Twitter API-nøgle
At få Twitter API-nøgle er nødvendig for at få adgang til dens data, da det er sådan, Twitter holder styr på dataene og den anmodningstælling, vores ansøgning stiller til Twitter.
Lad os oprette en Twitter-app og få de rigtige nøgler til at komme videre.
- Opret en app her
I ovenstående form skal du oprette en applikation med et entydigt navn, et webstedsnavn (brug en pladsholderwebsite, hvis du ikke har en) og en projektbeskrivelse. Accepter vilkårene og betingelserne (hvis du gør det) og fortsæt til næste side.
Når projektet er oprettet, skal du se en side med følgende overskrift:
- I nedenstående oplysninger skal du klikke på fanen 'Nøgler og adgangstokens' for at få følgende oplysninger:
- Rul ned og klik på "Generer adgangstokens" for at få nedenstående oplysninger:
Vi har brug for disse værdier senere, så det er bedre at holde denne fane åben.
Kom godt i gang med Twitter4J
Twitter4J er en uofficiel Java-bibliotek til Twitter API. Med Twitter4J kan vi nemt integrere vores Java-applikation med Twitter-tjenesten.
Maven afhængighed
For at starte tilføjer vi passende Maven-afhængighed til vores Java-projekt.
Find den nyeste version af afhængighed her.
Godkendelse
Vi har tilføjet krævet Maven-afhængighed nu. Det er på tide, at vi begynder at tale med API og Twitter.
For at starte samtalen skal vi godkende vores opkald til Twitter, så den ved, at kun en kendt bruger har adgang til dataene. Lad os til dette opsætte vores nøgler, vi har fået tidligere.
statisk endelig String CONSUMER_KEY = "du-nøgle";statisk endelig streng CONSUMER_SECRET = "hemmelig";
statisk endelig streng ACCESS_TOKEN = "token";
statisk endelig streng 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.build ());
returnere tf.getInstance ();
Eksempel: Viser tidslinje
I dette eksempel viser vi nogle af de seneste tweets fra den godkendte brugers tidslinje. Vi gør dette ved at bruge Twitters objekt Status-instans som:
privat statisk ugyldigt showHomeTimeline (Twitter twitter)Liste
prøve
status = twitter.getHomeTimeline ();
System.ud.println ("Viser hjemmetidslinje.");
for (Status status: status)
System.ud.println (status.getUser ().getName () + ":" + status.getText ());
String url = "https: // twitter.com / "+ status.getUser ().getScreenName () + "/ status /"
+ status.getId ();
System.ud.println ("Over tweet URL:" + url);
fange (TwitterException e)
e.printStackTrace ();
Resultatet skal se ud som en masse tilfældige tweets:
Ved at følge linket til tweetet kommer du ofte til selve tweetet. At følge linket fra den første tweet ville give os følgende resultat:
Bortset fra brugernavnet og tweetteksten har Twitter API meget information at give, som kan udledes af følgende tilgængelige 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 ();
Dette giver en masse information relateret til Tweet og den bruger, der sendte tweeten. Disse inkluderer ikke alle metoder, er du velkommen til at udforske alle de tilgængelige metoder.
Bemærk, at disse attributter kan være ekstremt nyttige, hvis din applikation afhænger af flere data.
Eksempel: Send et Tweet
I dette eksempel sender vi simpelthen en ny tweet fra vores kode, da brugeren allerede er godkendt. Lad os sætte nogle eksempler på kode her:
privat statisk ugyldig opdateringTweet (Twitter twitter, String tweet) kaster TwitterExceptionStatus status = twitter.updateStatus (tweet);
System.ud.println ("Status opdateret til [" + status.getText () + "].");
Det er så simpelt at sende en ny tweet.
Eksempel: Tweets fra en bestemt bruger
Det er meget let at få en anden bruger-tweets, bare send et brugernavn, og API'en returnerer nogle nylige tweets til brugeren.
Lad os prøve at hente de seneste tyve tweets fra twitter-konto @linuxhint:
Her er prøvekoden:
Listefor (Status status: status)
Streng fmt = "@" + status.getUser ().getScreenName () + "-" + status.getText ();
System.ud.println (fmt);
Når du kører dette program, skal du se tweets til LinuxHint.
Populære applikationer af denne type data kan omfatte:
- Kører analyse af specifikke brugere, og hvordan de interagerer med verden
- Find Twitter-påvirkere og analysere deres tilhængertendenser og interaktioner
- Overvågning af ændringer i en brugers tilhængere
Eksempel: Find tweets ved hjælp af et nøgleord
Lad os gøre et sidste eksempel: Få de seneste tweets, der indeholder et nøgleord. Dette kan være yderst nyttigt, hvis du vil overvåge specifikt nævnte emner i Twitter-verdenen eller endda se, hvordan din virksomhed bliver nævnt.
Lad os sige, at vi vil se, hvordan Twitter har nævnt Linux:
// searchTerm = Linuxprivat statisk ugyldig søgningTweets (Twitter twitter, String searchTerm) kaster TwitterException
Forespørgsel = ny forespørgsel ("kilde:" + searchTerm);
QueryResult resultat = twitter.søgning (forespørgsel)
for (Status status: resultat.getTweets ())
System.ud.println ("@" + status.getUser ().getScreenName () + ":" + status.getText ());
Her er nogle praktiske måder, du kan bruge disse oplysninger på:
- Opret en rumlig graf over, hvor din virksomhed nævnes mest rundt omkring i verden
- Kør sentimentanalyse på tweets for at se, om din virksomheds overordnede mening er positiv eller negativ
- Opret sociale grafer over de mest populære brugere, der kvidrer om din virksomhed eller dit produkt
Vi kan dække nogle af disse emner i fremtidige artikler.
Twitters API er uhyre nyttigt i data mining applikationer og kan give stor indsigt i den offentlige mening.