Paso 2: Iniciar con la construcción de la aplicación java
Java código va con las consultas de retweets, establece un piso (para evitar listado históricos retweets) y a partir de ese piso cada vez la consulta devuelve el número de retweets desde la última consulta, este es hecho usando un índice que se establece con cada consulta (en lugar de guardarlo en disco o DB).Adjunto el código, necesitará descargar y modificar las siguientes clases.
1. Abra el proyecto en netbeans.
2. Asegúrese de que se importan las librerías "RXTXcomm.jar" y "twitter4j-núcleo-2.2.2.jar", si no importarlos manualmente (usted los encontrará en la carpeta lib).
3. Compruebe qué puerto tu arduino está conectado con, en mi caso fue COM10 y así que modifiqué el constructor de la clase "serial_test" para reflejar.
a. Abra serial_test
b. vaya a puertos estáticos array PORT_NAMES y modificar la entrada de windows para que coincida con vuestra (si usas linux modificar el valor de linux).
4. Abra clase "arduino" y ConsumerKey y ConsumerSecret para que coincida con la que tienes desde el paso 1.
5. Limpie y compilar, ahora el código es leído.
Explicación de código
Construido usando Twitter4j esto requiere que usted debe llamar a la clase de autenticación en primer lugar, un poco fuera de alcance aquí pero estoy dispuesta a ofrecer cualquier ayuda necesaria si es necesario
Este es el método que cosecha el número de retweets.
público ArrayList get_retweets_from_last (identificador de cadena)
{
Twitter twitter = nuevo TwitterFactory().getInstance();
ResponseList retweets = null;
ArrayList ret_retweets = new ArrayList();
trate de {}
retweets=Twitter.getRetweetsOfMe();
para (retweets de s: estado)
{
if(s.getId() < =Long.parseLong(id))
rotura;
ret_retweets.Add(s);
}
System.out.println ("encontrado" + ret_retweets.size() + "retweets");
} catch (excepción e)
{e.printStackTrace();}
volver ret_retweets;
}
Luego usar la api de RXTXcomm para transferir este valor a Arduino, Arduino realiza un seguimiento de cuántos retweets recibido pues se reseted, este número se incrementa cada vez que recibe una nueva de la aplicación de Java.
público void escribir (int s)
{
trate de {}
output.Write(s);
} catch (excepción e)
{
e.printStackTrace();
}
}
Finalmente administrar todo esto desde un control de lazo con un retardo de tiempo (la razón aquí es que uno sólo un número limitado de llamadas a la API de Twitter por hora, si se excede que se bloquean),
mientras try{Thread.Sleep(30000);} retén (excepción e) {}
{
retweets=t.get_retweets_from_last(last_retweet);
retweets=t.get_mentions_from_last(last_retweet);
Si (retweets.isEmpty())
{
try{Thread.Sleep(60000);} retén (excepción e) {}
continuar;
}
last_retweet=""+retweets.get(0).getId();
St.Write(retweets.Size());
}