Twitter4J -opplæring

Twitter4J -opplæring
I denne leksjonen bruker vi Twitter4J -bibliotek for å gruve data fra Twitter. Twitter tar for seg big data hver dag, men hva er det faktisk? Vi har en veldig kort oversikt over big data før vi dykker inn i gruvedata fra Twitter.

Hvorfor min Twitter?

Twitter er et perfekt sted å trekke data fra. Her er noen grunner til at dette er sant:

  • Alle tweets på Twitter er offentlige
  • De nye dataene kommer stadig i sanntid, dette betyr at du aldri går tom for ferske data for å teste på
  • Twitter har interessant API for utviklere å hente data fra, de er også vennlige
  • APIer levert av Twitter gir enkle måter å trekke tweets relatert til en bestemt bruker eller til et bestemt ord/hashtag eller tweets på et bestemt sted

Starter

Nå som vi har rettferdiggjort hvorfor vi bruker denne plattformen, la oss begynne å samle verktøyene våre. Vi bruker Java 8 for denne leksjonen, men bruker gjerne versjoner over versjoner (selv om noen justeringer, ikke tweets, kan være nødvendig for å bruke dem).

Vi bruker et Java -bibliotek kalt Twitter4j for å koble til Twitters API.

Få Twitter API -tast

Å få Twitter API -tast er nødvendig for å få tilgang til dataene sine, da det er hvordan Twitter holder oversikt over dataene og forespørselsetallet vårt program for Twitter.

La oss opprette en Twitter -app og få de riktige nøklene til å komme videre.

  • Lag en app her

I ovenfor skjema, oppretter du et program med et unikt navn, et nettstednavn (bruk et stedholdernettsted hvis du ikke har en), og en prosjektbeskrivelse. Godta vilkårene (hvis du gjør det) og fortsett til neste side.

Når prosjektet er opprettet, bør du se en side med følgende overskrift:

  • I informasjon nedenfor, klikk på 'Keys and Access Tokens' -fanen for å få følgende informasjon:
  • Bla ned og klikk på "Generer tilgangstokener" for å komme under informasjonen:

Vi trenger disse verdiene senere, så det vil være bedre å holde denne fanen åpen.

Komme i gang med Twitter4j

Twitter4j er en uoffisiell Java Library for Twitter API. Med Twitter4J kan vi enkelt integrere vår Java -applikasjon med Twitter -tjenesten.

Maven -avhengighet

For å starte, vil vi legge til passende Maven -avhengighet til vårt Java -prosjekt.


org.Twitter4j
Twitter4j-core
4.0.6

Finn siste Maven -avhengighetsversjon her.

Autentisering

Vi har lagt til nødvendig maven -avhengighet nå. Det er på tide at vi begynner å snakke med API og Twitter.

For å starte samtalen, må vi autentisere samtalene våre til Twitter slik at den vet at bare en kjent bruker får tilgang til dataene. For dette, la oss konfigurere nøklene vi fikk tidligere.

statisk finale streng forbruker_key = "you-key";
statisk sluttstreng Consumer_secret = "Secret";
statisk final String access_token = "token";
statisk endelig streng access_token_secret = "token-secret";
offentlig statisk Twitter GettWitterInstance ()
KonfigurasjonBuilder CB = new ConfigurationBuilder ();
CB.setDebuGeNabled (sann) bashbash
.setoauthconsumerkey (forbruker_key)
.setoauthconsumsecret (Consumer_secret)
.setoauthaccesstoken (access_token)
.setoauthaccesstokensecret (access_token_secret);
TwitterFactory TF = Ny TwitterFactory (CB.bygge());
Returner tf.getInstance ();

Eksempel: Viser tidslinje

I dette eksemplet viser vi noen siste tweets fra Authenticated User's Timeline. Vi gjør dette ved å bruke Twitters objektstatusforekomst som:

Privat statisk tomrom Showhometimeline (Twitter Twitter)
Liste Statuser = null;
prøv
Statuser = Twitter.gethometimeline ();
System.ute.Println ("Viser hjemmetelinjen.");
for (Status Status: Statuser)
System.ute.Println (status.getUser ().getName () + ":" + status.getText ());
String url = "https: // twitter.com/" + status.getUser ().getScreenName () + "/status/"
+ status.getid ();
System.ute.Println ("Over Tweet URL:" + URL);

fangst (TwitterException e)
e.printStackTrace ();

Resultatet skal se ut som en haug med tilfeldige tweets:

Å følge lenken til tweeten vil ofte bringe deg til selve tweeten. Å følge lenken fra den første tweeten vil gi oss følgende resultat:

Bortsett fra brukernavnet og tweet -teksten, har Twitter API mye informasjon å gi som kan utledes fra å følge tilgjengelige 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 gir mye informasjon relatert til tweeten og brukeren som la ut tweeten. Disse inkluderer ikke alle metoder, kan du gjerne utforske alle tilgjengelige metoder.

Merk at disse attributtene kan være ekstremt nyttige hvis applikasjonen din avhenger av mer data.

Eksempel: Legg ut en tweet

I dette eksemplet vil vi ganske enkelt legge ut en ny tweet fra koden vår, ettersom brukeren allerede er autentisert. La oss legge noen eksempler på kode her:

Privat statisk tomrom UpdateTweet (Twitter Twitter, String Tweet) kaster TwitterException
Status Status = Twitter.updatestatus (tweet);
System.ute.Println ("oppdatert status til [" + status med hell.getText () + "].");

Å legge ut en ny tweet er så enkel som det.

Eksempel: Tweets fra en bestemt bruker

Det er veldig enkelt å få en annen bruker tweets, bare passere et brukernavn og API vil returnere noen nylige tweets for brukeren.

La oss prøve å trekke de siste tjue tweets fra Twitter -kontoen @Linuxhint:

Her er prøvekoden:

Liste Statuser = Twitter.getUserTimeline (“Linuxhint”);
for (Status Status: Statuser)
String fmt = "@" + status.getUser ().getScreenName () + " -" + Status.getText ();
System.ute.println (fmt);

Når du kjører dette programmet, bør du se tweets for Linuxhint.

Populære applikasjoner av denne typen data kan omfatte:

  • Kjøranalyse på spesifikke brukere, og hvordan de samhandler med verden
  • Finne Twitter -påvirkere og analysere følgerens trender og interaksjoner
  • Overvåke endringene i følgere av en bruker

Eksempel: Finne tweets ved hjelp av et nøkkelord

La oss gjøre et siste eksempel: Få de siste tweets som inneholder et nøkkelord. Dette kan være ekstremt nyttig hvis du vil overvåke spesifikt nevnte emner i Twitter -verdenen, eller til og med for å se hvordan virksomheten din blir nevnt.

La oss si at vi vil se hvordan Twitter har nevnt Linux:

// SearchTerm = Linux
Privat statisk tomrom SearchTweets (Twitter Twitter, String SearchTerm) kaster TwitterException
Query Query = New Query ("Kilde:" + Søkterm);
QueryResult Resultat = Twitter.søkeord);
for (Statusstatus: Resultat.getTweets ())
System.ute.println ("@" + status.getUser ().getScreenName () + ":" + Status.getText ());

Her er noen praktiske måter du kan bruke denne informasjonen på:

  • Lag en romlig graf om hvor selskapet ditt blir nevnt mest over hele verden
  • Kjør sentimentanalyse på tweets for å se om den generelle oppfatningen av selskapet ditt er positivt eller negativt
  • Lag en sosiale grafer av de mest populære brukerne som tweet om selskapet eller produktet ditt

Vi kan dekke noen av disse emnene i fremtidige artikler.

Twitters API er enormt nyttig i data mining -applikasjoner, og kan gi enorm innsikt i opinionen.