SimpleTweet_00 bearbetning (3 / 6 steg)
Steg 3: bearbetning
Måste du installera twitter4j biblioteket så att den kan användas av bearbetning.
Få den här: http://twitter4j.org/en/index.html#download
Installera den här (eller motsvarande): C:\Program Files\processing-1.5.1\modes\java\libraries
Du är klar.
Komma åt det här: bearbetning > skiss > Importera bibliotek... > twitter4j
Och när du gör, det ska lägga detta till toppen av din kod:
import twitter4j.conf.*;
import twitter4j.internal.async.*;
import twitter4j.internal.org.json.*;
import twitter4j.internal.logging.*;
import twitter4j.http.*;
import twitter4j.api.*;
import twitter4j.util.*;
import twitter4j.internal.http.*;
import twitter4j.*;
Förresten, ska du också lägga till seriell I/O från skissen > bibliotek, men det är inte viktigt just nu.
Så varför behöver du twitter4j? Det korta svaret är att det ger dig enkla funktioner så du behöver inte skriva en hel massa galna koden varje gång du vill komma åt Twitter. Vi använder twitter4j eftersom det är häftigt och det gör vårt jobb lättare.
// #####################################################################
// #####################################################################
simpleTweet_00_p
/*
simpleTweet_00 processing skiss (för användning med
simpleTweet_00 arduino skiss) av june2011
Arduino är ansluten till en krets med en sensor som
utlöser koden: Serial.write(n); där n = 1 eller 2.
Bearbetning skissen lyssnar för det meddelandet och sedan
använder twitter4j biblioteket för att ansluta till Twitter
via OAuth och post en tweet.
compareMsg() läggas till om du vill jämföra
aktuella och tidigare tweets att förhindra retweets.
Denna bearbetning koden kräver twitter4j biblioteket
och din registrerade app info från dev.twitter.com
Läs mer om arduino, bearbetning, twitter4j,
OAuth och registrera din app med Twitter...
besöka <
besöka < http://www.twitter.com/msg_box>
Här koden gjordes möjligt och förbättras med
hjälp från människor över internet. Tack.
Speciella shoutouts till de hjälpsamma lurkers på twitter4j,
Arduino, bearbetning och bloggare överallt, och
till den adafruit & ladydada crowdsource.
Och framför allt till min underbara fru, utan
Vem, inget av detta hade varit möjligt.
Bli inte en kuk.
*/
import processing.serial.*;
import twitter4j.conf.*;
import twitter4j.internal.async.*;
import twitter4j.internal.org.json.*;
import twitter4j.internal.logging.*;
import twitter4j.http.*;
import twitter4j.api.*;
import twitter4j.util.*;
import twitter4j.internal.http.*;
import twitter4j.*;
statisk String OAuthConsumerKey = "Din konsument nyckel";
statisk String OAuthConsumerSecret = "Din konsument hemlighet".
statisk String AccessToken = "Din TOKEN tillgång";
statisk String AccessTokenSecret = "Din tillgång TOKEN hemlighet".
Seriella arduino;
Twitter twitter = nya TwitterFactory().getInstance();
void setup() {
storlek (125, 125);
frameRate(10);
Background(0);
println(Serial.list());
String arduinoPort = Serial.list() [0];
Arduino = ny följetong (denna, arduinoPort, 9600);
loginTwitter();
}
void loginTwitter() {
twitter.setOAuthConsumer (OAuthConsumerKey, OAuthConsumerSecret);
AccessToken accessToken = loadAccessToken();
twitter.setOAuthAccessToken(accessToken);
}
privata statisk AccessToken loadAccessToken() {
returnera nya AccessToken (AccessToken, AccessTokenSecret);
}
void draw() {
Background(0);
text ("simpleTweet_00", 18, 45);
text (30, 70);
listenToArduino();
}
void listenToArduino() {
String msgOut = "";
int arduinoMsg = 0;
om (arduino.available() > = 1) {
arduinoMsg = arduino.read();
om (arduinoMsg == 1) {
msgOut = "öppnade dörren i" + hour()+":"+minute()+":"+second();
}
om (arduinoMsg == 2) {
msgOut = "stängd dörr på" + hour()+":"+minute()+":"+second();
}
compareMsg(msgOut); Detta steg är valfritt
postMsg(msgOut);
}
}
void postMsg(String s) {
försök {
Status status = twitter.updateStatus(s);
println ("ny tweet--: {" + status.getText() + "}:--");
}
fånga (TwitterException e) {
println ("Status fel:" + e + "; statusCode: "+ e.getStatusCode());
}
}
void compareMsg(String s) {
jämföra nya msg mot senaste tweet att undvika reTweets
java.util.List status = null;
String prevMsg = "";
String newMsg = s;
försök {
status = twitter.getUserTimeline();
}
fånga (TwitterException e) {
println ("tidslinje fel:" + e + "; statusCode: "+ e.getStatusCode());
}
Status status = (Status)statuses.get(0);
prevMsg = status.getText();
String [] p = splitTokens(prevMsg);
String [] n = splitTokens(newMsg);
println("("+p[0]+") ->"+ n[0]); debug
om (p[0].equals(n[0]) == false) {
postMsg(newMsg);
}
println(s); debug
}