Archivio

Archivio per la categoria ‘Java’

JTwitter , come interagire con Twitter tramite Java

agosto 30, 2009 Lascia un commento

Mentre nel precedente post ho illustrato la libreria Skype4Java , quest’ oggi vi parlo di JTwitter. Si tratta di una libreria open source per la gestione del proprio account twitter da un’ applicazione scritta in Java. Il sito del produttore è questo da cui è possibile scaricare la libreria jtwitter.jar oltre che la documentazione ed il codice sorgente. L’aspetto entusiasmante di questa API è l’estrema facilità di utilizzo .duke_twitter

Ipotizzando di usare NetBeans come IDE per lo sviluppo del progetto, per realizzare un’ applicazione che acceda al proprio account Twitter e che possa utilizzare tutti i servizi della piattaforma, basta aggiungere il file jtwitter.jar all’interno della cartella relativa alle librerie del progetto.

L’uso della libreria è incredibilmente semplice, per utilizzarla basta importare la libreria interwell.jtwitter.Twitter , in questo modo:

import winterwell.jtwitter.Twitter;

Il seguente codice non fa altro che aggiornare il proprio stato in Twitter:

String message = "Sto utilizzando Jtwitter";
String username = "usr";
String password = "pass";
boolean success ;
if (message.length() > 140) {
         message.substring(0, 140);
}
// Make a Twitter object
Twitter twitter = new Twitter(username, password);
// Set my status
Twitter.Status status = twitter.updateStatus(message);
if (status.getText().equals(message)) success = true;
else success = false;

Osservando il codice , si nota come tutto parta dalla classe Twitter che offre tutti i metodi per gestire l’interazione. Inoltre è stato necessario impostare un limite al numero di caratteri di cui un singolo messaggio possa essere composto , proprio perchè Twitter.com impone un limite ai tweets di 140 caratteri.
Un modo per visualizzare la timeline del nostro account è il seguente:

List<Status> userTimeline = twitter.getUserTimeline();
for ( int i = 0; i <userTimeline.size(); i++ ){
     System.out.println(userTimeline.get(i).getText());
}

In realtà è possibile accedere anche alla timeline pubblica semplicemente utilizzando il metodo getPublicTimeline().

Categories: Java Etichette: ,

Skype4Java, come utilizzare Skype in Java

agosto 29, 2009 Lascia un commento

Skype4Java è una API completamente open source. Gli sviluppatori hanno realizzato una serie di metodi statici per gestire la maggiorparte delle funzionalità offerte da Skype.  E’ possibile scaricare la libreria da questo indirizzo. Per presentare un esempio , ipotiziamo di utilizzare NetBeans come IDE di sviluppo . Una volta terminato il download , è necessario importare l’intera cartella “release” nelle librerie utilizzate nel progetto .skype_duke

E’ di vitale importanza, per rendere possibile l’esecuzione del programma che stiamo per realizzare, di inserire una direttiva alla virtual machine di questo tipo: -Djava.library.path=lib  dove lib è la cartella in cu è presente il file swt-win32-3232.dll . In particolare in NetBeans, la direttiva viene posta in questo modo : tasto destro sul nome del progetto -> Properties -> Run -> VMOptions .

Passiamo al codice, il primo passo è di importare com.skype.Skype nella classe che stiamo realizzando:

import com.skype.Skype ;

Il primo blocco di codice si occupa di visualizzare i dati dell’ utente attualmente connesso ed in più imposta sia la città che la frase di presentazione del profilo stesso:

Profile profilo = Skype.getProfile();
System.out.println("ID:" + profilo.getId());
System.out.println("Sesso:" + profilo.getSex());
System.out.println("Città:" + profilo.getCity());
System.out.println("Stato:" + profilo.getStatus());

profilo.setCity("Napoli");
profilo.setMood("sto testando le API Skype");

Per visualizzare l’elenco dei contatti :

Friend[] contatti = Skype.getContactList().getAllFriends();
for (int i = 0; i < contatti.length; i++) {
    Friend contatto = contatti[i];
    System.out.println(contatto.getId() + " -> " + contatto.getFullName());
}

Per creare un nuovo gruppo:

Skype.getContactList().addGroup("Nuovo Grupppo");

E’ possibile anche inoltra messaggi di chat , effettuare telefonate ed inviarre un sms ad un contatto. Di seguito vi presento come fare:

Inoltro nuovo messaggio di chat ad un certo contatto, ipotiziamo di inoltrarlo all’utente “Pippo” :

Friend contatto = Skype.getContactList().getFriend("Pippo");
if (null != contatto && contatto.getOnlineStatus().equals(User.Status.ONLINE))
   contatto.send("Messaggio mandato tramite Skype4Java API");
else
   System.out.println("Il contatto non è al PC ");

Avvio di una chiamata :

Friend contatto = Skype.getContactList().getFriend("pippo");
if (null != contatto && contatto.getOnlineStatus().equals(User.Status.ONLINE))
   contatto.call();
else
   System.out.println("Il contatto non è al PC ");

Inoltro di un SMS :

Skype.sendSMS("134567890", "testo del nuovo sms");

Vi segnali infine il link delle API Skype dal sito ufficiale e il sito in cui trovate il codice sorgente delle API con una breve descrizione dei metodi. Vi consiglio di utilizzare questo ultimo link come Documentazione dato che gli sviluppatori non hanno realizzato nessuna documentazione ufficiale riguardo a SKype4Java.

Categories: Java Etichette: ,

Popolare una HashMap in Java

agosto 22, 2009 Lascia un commento

javaIl post di oggi si pone l’obbiettivo di presentare un modo semplice ed intuitivo di popolare una HashMap in Java.

Premesso che per “Tabella di Hashing” si intende una struttura dati di tipo associativo in cui c’è un associazione univoca tra chiave e relativo valore. Per poter accedere un certo valore bisogna conoscerne la relativa chiave. Senza entrare troppo nei dettagli teorici, l’uso di tabelle di hashing risulata conveniente in caso di operazione di ricerca, dato che il tempo di ricerca di una qualunque chiave all’interno della tabella è costante ( in termini matematici è un  O(1) ).

Java mette a disposizione del programmatore una classe che implementa le funzionalità di una tabella di hashing tramite la classe “HashMap”. Di seguito ho realizzato una classe che illustri l’utilizzo delle “Map” :

import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class HashMapTest {
     private HashMap map ;
     public HashMapTest() {
           map = new HashMap();
     }

     public HashMap setMap() {

          String nome = "Andrea";
          String anno = "2009";
          map.put("k1", nome);
          map.put("k2", anno);
          return map ;
     }
     public void printMapContent(HashMap m) {
          Set set= map.keySet() ;
          Iterator iter = set.iterator () ;
          while ( iter.hasNext () )  {
            System.out.println ( map.get ( iter.next () ) ) ;
          }
     }
     public static void main (String args[]){
          HashMapTest test = new HashMapTest();
          HashMap resMap = test.setMap();
          test.printMapContent(resMap);
     }
}// :~

Osservando il codice si nota come una volta creato l’oggetto “map” , istanza della classe HashMap , ci siano due metodi che vengono richiamati , “put()” e “get()” rispettavamente per inserire una nuova entry nella tabella e l’ altro per ottenere il valore della entry selezionata  a partire dalla chiave inserita.

Il metodo “setMap” realizza il riempimento della struttura dati tramite il metodo put() e ritorna un riferimento alla tabella appena aggiornata. In particolare la chiamata di put() avviene in questo modo: put( “NOME_CHIAVE” , “VALORE ASSOCIATO”), dove entrambi i parametri di ingresso sono di tipo String.

Il riferimento ottenuto da setMap() , viene poi utilizzato dal metodo printMapContent() per stampare a video il contenuto della tabella. In questo metodo viene richiamata la funzione “get” che prende come parametro di ingresso una stringa che rappresenta il nome della chiave della entry ricercata e ritorna il valore associato quindi la chiamata avviene come segue: get( “NOME_CHIAVE”).

Entrambi i metodi realizzati, vengono utilizzati nel metodo main() della classe. Provando ad eseguire il codice, il risultato desiderato sarà:

Andrea
2009

Al prossimo post!


Categories: Java Etichette:
Iscriviti

Get every new post delivered to your Inbox.