Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: DeveloperTalk. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

DanielBocksteger

unregistriert

1

01.07.2011, 14:36

Twitter Client

Java-Tutorial: Einen eigenen Twitter-Client schrieben

Hier erfahrt ihr, wie ihr mit Hilfe von Twitter4j einen Twitter-Client in Java schriebt.
Die Bibliothek wie folgt einbinden : Java Bibliothek in Eclispe einbinden
Bibliothek von Twitter4j im Anhang ;)

Schritt 1 , Vorbereitung
Als erstes brauchen wir eine Twitter Account, diesen erstellen wir bei http://www.twitter.com/.
Nach dem erstellen, rufen wir die Seite http://www.twitter.com/apps
Dort klicken wir nun auf "Register a new Application" an und geben dort unsere Informationen ein. Als URL eurer Seite könnt ihr z.B. eine Profilseite bei Facebook oder SVZ angeben.

Wenn dieser Schritt abgeschlossen ist Landen wir auch einer Seite auf der Keys und auch URLs stehen. und interessieren nur diese beiden :
Benutzerschlüssel
Benutzerkennwort

Diese beiden Keys schrieben wir uns nun auf.

Schritt 2, Tokens erlangen

Als nächstes schrieben wir uns eine Java Klasse. Bei mir heißt die Klasse MessageBird.

Java-Quelltext

1
2
3
public class MessageBird {

}


Dort deklarieren wir nun 4 Variablen:


Java-Quelltext

1
2
3
4
private String consumerKey = "####"; // Hier Benutzerschlüssen eingeben
private String consumerSecret = "####"; // Hier Benutzerkennwort eingeben
private String token = ""; // Hier wird später das erhaltene token angefügt
private String tokenSecret = ""; // Hier wird später das tokenSecret eingefügt


Nun werden wir die folgenden imports anlegen um direkt Exceptions und anderen Errormeldungen vorzubeugen.

Java-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
import java.util.List;
import java.io.BufferedReader;
import java.io.InputStreamReader;

import twitter4j.Status;                       // Von Hier 
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;            // Erst nach einbinden des Bibliothek machbar hierzu siehe [url]http://www.developertalk.de/bibliothek-in-eclispe-einbinden-tutorials/tutorials/t79-f72/[/url]
import twitter4j.auth.AccessToken;
import twitter4j.auth.RequestToken;

import twitter4j.conf.ConfigurationBuilder; // Bis hier



Nun wird in der Klasse eine Methode "initialAuth()" angelegt, diese hat den folgenden inhalt, den mach auch unter http://twitter4j.org/en/code-examples.html (siebter Stichpunkt)

Dies Methode hat folgenden Inhalt :

Java-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public void initialAuth() throws Exception {
Twitter twitter = new TwitterFactory().getInstance();
    // Liest beide Keys ein
twitter.setOAuthConsumer(consumerKey, consumerSecret);
RequestToken requestToken = twitter.getOAuthRequestToken();
AccessToken accessToken = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while (null == accessToken) {
      // Gibt eine Internetadresse aus, auf der wir eine PIN bekommen ( in Twitter eingeloggt sein !! ) diese PIN dann eingeben
  System.out.println("Open the following URL and grant access to your account:");
  System.out.println(requestToken.getAuthorizationURL());
  System.out.print("Enter the PIN(if aviailable) or just hit enter.[PIN]:");
  String pin = br.readLine();
  try{
     if(pin.length() > 0){
       accessToken = twitter.getOAuthAccessToken(requestToken, pin);
     }else{
       accessToken = twitter.getOAuthAccessToken();
     }
  } catch (TwitterException te) {
    if(401 == te.getStatusCode()){
      System.out.println("Unable to get the access token.");
    }else{
      te.printStackTrace();
    }
  }
      // Tokens auf dem Bildschirm ausgeben
  System.out.println("token=" +accessToken.getToken());
  System.out.println("tokenSecret=" + accessToken.getTokenSecret());
}
}


Zum Schluss schrieben wir noch eine main Methode:

Java-Quelltext

1
2
3
4
5
6
7
8
9
public static void main( String[] args ) {
 // Zum holen der Tokens
 MessageBird mb = new MessageBird(); 
 try {
new MessageBird().initialAuth();
 } catch (Exception e) {
e.printStackTrace();
 }
}



Wenn wir nun die Datei in z.B. Eclipse starten erhalten wir eine Ausgabe.
Wenn wir es starten, bekommen wir erst nur die URL ausgegeben und werden aufgefordert die PIN einzugene , wir rufen also die URL auf und authorisieren die App mit einem Klick auf "Authorisieren". Nun erhalten wir die PIN die wir nun an die Aufforderung hängen und mit Enter bestätigen.
Das Resultat sind die zwei tokens.

Zitat

Open the following URL and grant access to your account:
http://api.twitter.com/oauth/authorize?o…QMdJwwptvPev6kY
Enter the PIN(if aviailable) or just hit enter.[PIN]:8179962
token=325663228-EHjoG41D3aKjhTBWfsuo6HVeoWfcysUebS535Bk2
tokenSecret=3vSQiIhfGtQUgrdFzGIKYcokAOFDQmbJElDGSmME

Die beiden tokens speichern wir uns nun in den dafür angelegten Variablen ab.
Nun sieht unsere Klasse schon so aus :

Spoiler Spoiler

Java-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import java.util.List;
import java.io.BufferedReader;
import java.io.InputStreamReader;

import twitter4j.Status;                       // Von Hier 
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;            // Erst nach einbinden des Bibliothek machbar hierzu siehe [url]LINK[/url]
import twitter4j.auth.AccessToken;
import twitter4j.auth.RequestToken;

import twitter4j.conf.ConfigurationBuilder; // Bis hier

public void initialAuth() throws Exception {
Twitter twitter = new TwitterFactory().getInstance();
    // Liest beide Keys ein
twitter.setOAuthConsumer(consumerKey, consumerSecret);
RequestToken requestToken = twitter.getOAuthRequestToken();
AccessToken accessToken = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while (null == accessToken) {
       // Gibt eine Internetadresse aus, auf der wir eine PIN bekommen ( in  Twitter eingeloggt sein !! ) diese PIN dann eingeben
  System.out.println("Open the following URL and grant access to your account:");
  System.out.println(requestToken.getAuthorizationURL());
  System.out.print("Enter the PIN(if aviailable) or just hit enter.[PIN]:");
  String pin = br.readLine();
  try{
     if(pin.length() > 0){
       accessToken = twitter.getOAuthAccessToken(requestToken, pin);
     }else{
       accessToken = twitter.getOAuthAccessToken();
     }
  } catch (TwitterException te) {
    if(401 == te.getStatusCode()){
      System.out.println("Unable to get the access token.");
    }else{
      te.printStackTrace();
    }
  }
      // Tokens auf dem Bildschirm ausgeben
  System.out.println("token=" +accessToken.getToken());
  System.out.println("tokenSecret=" + accessToken.getTokenSecret());
}
}

public static void main( String[] args ) {
 // Zum holend er Tokens
 MessageBird mb = new MessageBird(); 
 try {
new MessageBird().initialAuth();
 } catch (Exception e) {
e.printStackTrace();
 }
}
»DanielBocksteger« hat folgende Datei angehängt:

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »DanielBocksteger« (23.11.2011, 20:47)


Es hat sich bereits 1 registrierter Benutzer bedankt.

Benutzer, die sich für diesen Beitrag bedankt haben:

Simon (02.07.2011)

Ähnliche Themen

Verwendete Tags

Client, Java, Tutorial, Twitter