Seite wählen

Twitter Development – Verbindung aufbauen

von | Jul 24, 2009 | Development, Serien

twitter-tTwitter ist ein sehr populärer Micro-Blogging Dienst, der seinen Erfolg großteils den vielen rund um ihn entstandenen Tools und Programmen zu verdanken hat. Vor allem, weil die Nutzung von Twitter durch die bereitgestellten API Funktionen besoners leicht ist.
Diese kleine Serie widmet sich der Verwendung der Java-API Twitter4J von Yusuke Yamamoto. Twitter4J schien mir die vollständigste und aktivste Java API für Twitter zu sein, aber der grundsätzliche Ansatz ist wohl API-übergreifend.
Die verwendete Funktionsweise zur Autorisierung der Benutzer ist ergänzend einen tiefergehenden Blick wert und basiert auf OAuth, welches die Freigabe von Informationen ohne Austauch von Benutzer und Passwort ermöglicht. Einen ausführlichen Beginners Guide gibt es bei Hueniverse.
Im ersten Beispiel bauen wir mal die Verbindung zu Twitter auf, was so einfach ist, dass sich die Definition einer eigenen Klasse eigentlich nicht lohnt, aber es soll auf Basis dieser Klassen in der Serie weiter gehen.

package org.netways.api.twitter;
import twitter4j.RateLimitStatus;
import twitter4j.Twitter;
import twitter4j.TwitterException;
public class TwitterFunctions {
	Twitter twitter;
	public TwitterFunctions(String user, String password) {
		twitter = new Twitter(user, password);
	}
	public int getHourlyLimit() throws TwitterException {
		RateLimitStatus rls = twitter.rateLimitStatus();
		return rls.getHourlyLimit();
	}
	public int getRemainingHits() throws TwitterException {
		RateLimitStatus rls = twitter.rateLimitStatus();
		return rls.getRemainingHits();
	}
}

Anschließend lassen wir uns unter Verwendung der Klasse RateLimitStatus gleich noch zurückgeben, ob wir noch ein paar Versuche frei haben, die Twitter-Services in Anspruch zu nehmen. Nachdem das aktuelle Limit vor kurzem von 100 auf 150 Calls erhöht wurde, haben wir also noch ein wenig Luft für weitere Übungen.

package org.netways.api.twitter;
public class TwitterApi {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			TwitterFunctions tf = new TwitterFunctions("netways", "password");
			System.out.println("Hourly Limit: "+tf.getHourlyLimit());
			System.out.println("Free Limit: "+tf.getRemainingHits());
		} catch (Exception e) {
			System.err.println(e.toString());
		}
	}
}

Der nächsten Blog-Post widmet sich den vorhandenen Userattributen und und Möglichkeiten zur Weiterverarbeitung.

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startete er früher das wöchentliche Lexware-Backup, welches er nun endlich automatisiert hat. So investiert er seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und...
Mehr Beiträge zum Thema Development | Serien

Ansible – Loop over multiple tasks

The last time I wrote about Ansible and the possibility to use blocks to group multiple tasks. Which you can read here. Sadly this feature does not work with loop, so there is no clean way to loop over multiple tasks in a play without writing the same loop statement...

Daily business: der Editor vim

Es ist unerfreulich lange her, dass ich das erste Mal mit vim in Berührung kam -- anno 1997, um genau zu sein, während meiner ersten verzweifelten Gehversuche in Sachen S.u.S.E. Linux. Oder war das noch vi? So irgendwie habe ich das Tool über die Jahre dann hinter mir...

DevOpsDays Berlin cancelled

The DevOpsDays Berlin have been cancelled for this year due to Corona. "Though there were good arguments for running the conference, most of us felt uncomfortable to expose people to a potential danger that isn't fully understood yet", the organizers said. They...

Gitlab Johnyj12345 Hack

Yesterday we received the information that there is a new Gitlab "hack" which could affect older versions of Gitlab. If affected it will behave like this: The publicly visible procedure is always the same: Johny creates one or more issues that are linked with each...

Veranstaltungen

Dez 01

Icinga 2 Fundamentals Training | Online

Dezember 1 @ 09:00 - Dezember 4 @ 17:00
Dez 03

DevOps Meetup

Dezember 3 @ 17:30 - 20:30
Dez 08

Terraform mit OpenStack Training | Online

Dezember 8 @ 09:00 - Dezember 9 @ 17:00
Dez 08

Icinga 2 Advanced Training | Online

Dezember 8 @ 09:00 - Dezember 10 @ 17:00
Dez 15

GitLab Training | Online

Dezember 15 @ 09:00 - Dezember 16 @ 17:00