Etape 2: Commencer par générer votre application java
Le Java code va dans les requêtes pour les retweets, définit un plancher (pour éviter l’inscription historiques retweets) et à partir de ce plancher, chaque fois qu’il interroge il retourne le nombre de retweets depuis la dernière requête, c’est fait en utilisant un index qui obtient serti de chaque requête (plutôt que de les enregistrer sur disque ou DB).Je vous joins le code, vous aurez besoin de le télécharger et de modifier les classes suivantes.
1. Ouvrez le projet sur netbeans.
2. s’assurer que les bibliothèques « RXTXcomm.jar » et « twitter4j-core-2.2.2.jar » sont importées, si elles n’étaient pas les importer manuellement (vous les trouverez dans le dossier lib).
3. Vérifiez quel port votre arduino est connecté à, dans mon cas c’était COM10, et donc j’ai modifié le constructeur de la classe « serial_test » refléter cela.
a. Lancez serial_test
b. aller aux ports public statiques array PORT_NAMES et modifier l’entrée de windows pour correspondre à vôtre (si vous utilisez linux modifiez la valeur de linux).
4. Ouvrez la classe « arduino » et ConsumerKey et ConsumerSecret pour correspondre à ceux que vous avez de l’étape 1.
5. nettoyer et compiler, maintenant, le code est lu.
Explication de code
Construit à l’aide de Twitter4j cela nécessite que vous devez appeler la classe authentifier tout d’abord, un peu hors de portée ici, mais je suis prêt à fournir toute l’aide nécessaire si besoin
Voici la méthode qui récolte le nombre de retweets.
public ArrayList get_retweets_from_last (String id)
{
Twitter twitter = new TwitterFactory().getInstance() ;
ResponseList retweets = null ;
ArrayList ret_retweets = new ArrayList() ;
try {}
retweets=Twitter.getRetweetsOfMe() ;
pour (retweets s: de statut)
{
if(s.GetId() < =Long.parseLong(id))
rupture ;
ret_retweets.Add(s) ;
}
System.out.println ("trouvé" + ret_retweets.size() + « retweets ») ;
} catch (System.Exception e)
{e.printStackTrace();}
Return ret_retweets ;
}
J’utilise l’api RXTXcomm pour transférer cette valeur à l’Arduino, l’Arduino conserve la trace des retweets combien il a reçu comme il a été réinitialisée, ce nombre est incrémenté chaque fois qu’il reçoit une nouvelle de l’application Java.
Public Sub write (int s)
{
try {}
output.Write(s) ;
} catch (System.Exception e)
{
e.printStackTrace() ;
}
}
Enfin, je gère tout cela d’un contrôle de la boucle avec un retard temporisé (la raison ici est que vous obtenez seulement un nombre limité d’appels de l’API Twitter par heure, si vous dépassez vous obtenez bloqué),
while (true) try{thread.Sleep(30000);} catch (Exception e) {}
{
retweets=t.get_retweets_from_last(last_retweet) ;
retweets=t.get_mentions_from_last(last_retweet) ;
Si (retweets.isEmpty())
{
try{thread.Sleep(60000);} catch (Exception e) {}
continuer ;
}
last_retweet=""+retweets.get(0).GetId() ;
St.Write(retweets.Size()) ;
}