Java

Twitter4J-zelfstudie

Twitter4J-zelfstudie
In deze les gebruiken we de Twitter4J-bibliotheek om gegevens van Twitter te ontginnen. Twitter houdt zich elke dag bezig met Big Data, maar wat is het eigenlijk?? We zullen een heel kort overzicht hebben van Big Data voordat we in de mijnbouwgegevens van Twitter duiken.

Waarom mijn Twitter?

Twitter is een perfecte plek om gegevens uit te halen. Hier zijn enkele redenen waarom dit waar is:

Beginnen

Nu we hebben onderbouwd waarom we dit platform gebruiken, laten we beginnen met het verzamelen van onze tools. We gebruiken Java 8 voor deze les, maar voel je vrij om bovenstaande versies te gebruiken (hoewel sommige tweaks, geen tweets, nodig kunnen zijn om ze te gebruiken).

We gebruiken een Java-bibliotheek genaamd Twitter4J om verbinding te maken met de API van Twitter.

Twitter API-sleutel verkrijgen

Het verkrijgen van een Twitter API-sleutel is nodig om toegang te krijgen tot de gegevens, omdat Twitter op deze manier de gegevens en het aantal verzoeken bijhoudt dat onze applicatie aan Twitter doet.

Laten we een Twitter-app maken en de juiste sleutels krijgen om verder te gaan.

Maak in bovenstaande vorm een ​​applicatie met een unieke naam, een websitenaam (gebruik een tijdelijke website als u die niet heeft) en een projectbeschrijving. Accepteer de algemene voorwaarden (als je dat doet) en ga verder naar de volgende pagina.

Nadat het project is gemaakt, zou u een pagina met de volgende kop moeten zien:

We hebben deze waarden later nodig, dus het is beter om dit tabblad open te houden.

Aan de slag met Twitter4J

Twitter4J is een onofficieel Java-bibliotheek voor de Twitter API. Met Twitter4J kunnen we onze Java-applicatie eenvoudig integreren met de Twitter-service.

Maven-afhankelijkheid

Om te beginnen voegen we de juiste Maven Dependency toe aan ons Java-project.


org.twitter4j
twitter4j-core
4.0.6

Vind hier de nieuwste maven-afhankelijkheidsversie.

authenticatie

We hebben nu de vereiste Maven-afhankelijkheid toegevoegd. Het wordt tijd dat we gaan praten met de API en Twitter.

Om het gesprek te beginnen, moeten we onze oproepen naar Twitter verifiëren, zodat het weet dat alleen een bekende gebruiker toegang heeft tot de gegevens. Laten we hiervoor onze sleutels instellen die we eerder hebben verkregen.

static final String CONSUMER_KEY = "jij-toets";
static final String CONSUMER_SECRET = "geheim";
static final String ACCESS_TOKEN = "token";
static final String ACCESS_TOKEN_SECRET = "token-secret";
openbare statische Twitter getTwitterInstance()
ConfigurationBuilder cb = nieuwe ConfigurationBuilder();
cb.setDebugEnabled (true) bashbash
.setOAuthConsumerKey(CONSUMER_KEY)
.setOAuthConsumerSecret(CONSUMER_SECRET)
.setOAuthAccessToken(ACCESS_TOKEN)
.setOAuthAccessTokenSecret (ACCESS_TOKEN_SECRET);
TwitterFactory tf = nieuwe TwitterFactory(cb.bouwen());
retour tf.getInstance();

Voorbeeld: Tijdlijn tonen

In dit voorbeeld tonen we enkele meest recente tweets van de tijdlijn van geverifieerde gebruikers. We doen dit door de object Status-instantie van Twitter te gebruiken als:

privé statische leegte showHomeTimeline(Twitter twitter)
Lijst statussen = null;
proberen
statussen = twitter.getHomeTijdlijn();
Systeem.uit.println("Thuistijdlijn weergeven.");
voor (Statusstatus: statussen)
Systeem.uit.println(status).getUser().getName() + ":" + status.getText());
String url = "https://twitter.com/" + status.getUser().getScreenName() + "/status/"
+ toestand.getId();
Systeem.uit.println("Boven tweet-URL: " + url);

catch (TwitterException e)
e.printStackTrace();

Het resultaat zou eruit moeten zien als een reeks willekeurige tweets:

Als je de link naar de tweet volgt, kom je vaak bij de tweet zelf. Het volgen van de link van de eerste tweet zou ons het volgende resultaat geven:

Afgezien van de gebruikersnaam en de tweettekst, heeft de Twitter API veel informatie te geven die kan worden afgeleid uit de volgende beschikbare methoden:

toestand.getSource();
toestand.getCreatedAt();
toestand.getFavoriteCount();
toestand.getGeoLocatie();
toestand.getLang();
toestand.getPlace();
toestand.getRetweetCount();
toestand.getUser().getBiggerProfileImageURL();
toestand.getUser().getE-mail();
toestand.getUser().getFollowersCount();
toestand.getUser().getFriendsCount();

Dit geeft veel informatie met betrekking tot de Tweet en de gebruiker die de tweet heeft gepost. Deze omvatten niet alle methoden, voel je vrij om alle beschikbare methoden te verkennen.

Houd er rekening mee dat deze kenmerken erg handig kunnen zijn als uw toepassing afhankelijk is van meer gegevens.

Voorbeeld: Plaats een Tweet

In dit voorbeeld plaatsen we gewoon een nieuwe tweet vanuit onze code omdat de gebruiker al is geverifieerd. Laten we hier wat voorbeeldcode plaatsen:

privé statische ongeldige updateTweet (Twitter twitter, String tweet) gooit TwitterException
Statusstatus = twitter.updateStatus(tweet);
Systeem.uit.println("De status is geüpdatet naar [" + status.getText() + "].");

Een nieuwe tweet plaatsen is zo simpelt.

Voorbeeld: Tweets van een specifieke gebruiker

Het is heel gemakkelijk om tweets van een andere gebruiker te krijgen, geef gewoon een gebruikersnaam door en de API zal enkele recente tweets voor de gebruiker retourneren.

Laten we proberen de laatste twintig tweets van twitteraccount @linuxhint te halen:

Hier is de voorbeeldcode:

Lijst statussen = twitter.getUserTimeline(“linuxhint”);
voor (Statusstatus: statussen)
String fmt = "@" + status.getUser().getScreenName() + " - " + status.getText();
Systeem.uit.println(fmt);

Als je dit programma uitvoert, zou je Tweets voor Linux moeten zienHint.

Populaire toepassingen van dit type gegevens kunnen zijn:

  • Analyse uitvoeren van specifieke gebruikers en hoe ze omgaan met de wereld
  • Twitter-beïnvloeders vinden en hun volgerstrends en interacties analyseren
  • De veranderingen in de volgers van een gebruiker volgen

Voorbeeld: Tweets zoeken met een trefwoord

Laten we nog een laatste voorbeeld geven: de meest recente tweets ophalen die een trefwoord bevatten. Dit kan erg handig zijn als u specifiek genoemde onderwerpen in de Twitter-wereld wilt volgen, of zelfs om te zien hoe uw bedrijf genoemd wordt.

Laten we zeggen dat we willen zien hoe Twitter Linux noemt:

//searchTerm=Linux
private static void searchTweets(Twitter twitter, String searchTerm) gooit TwitterException
Query query = new Query("source:" + searchTerm);
QueryResultaat resultaat = twitter.zoekopdracht);
voor (Statusstatus: resultaat.getTweets())
Systeem.uit.println("@" + status.getUser().getScreenName() + ":" + status.getText());

Hier zijn enkele praktische manieren waarop u deze informatie kunt gebruiken:

  • Maak een ruimtelijke grafiek van waar uw bedrijf het meest wordt genoemd over de hele wereld
  • Voer sentimentanalyse uit op tweets om te zien of de algemene mening van uw bedrijf positief of negatief is
  • Maak een sociale grafiek van de meest populaire gebruikers die over uw bedrijf of product tweeten

We kunnen enkele van deze onderwerpen in toekomstige artikelen behandelen.

De API van Twitter is enorm nuttig in toepassingen voor datamining en kan uitgebreide inzichten bieden in de publieke opinie.

Handige hulpmiddelen voor Linux-gamers
Als je graag games op Linux speelt, is de kans groot dat je apps en hulpprogramma's zoals Wine, Lutris en OBS Studio hebt gebruikt om de game-ervaring...
HD Remastered Games voor Linux die nog nooit eerder een Linux-release hebben gehad
Veel game-ontwikkelaars en uitgevers komen met HD-remaster van oude games om de levensduur van franchise te verlengen, fans die compatibiliteit met mo...
Hoe AutoKey te gebruiken om Linux-spellen te automatiseren
AutoKey is een hulpprogramma voor desktopautomatisering voor Linux en X11, geprogrammeerd in Python 3, GTK en Qt. Met behulp van de scripting- en MACR...