先日、『ARプログラミング?Processingでつくる拡張現実感のレシピ?』を読み終えたので、実際にサンプルを入力しながら学習を進めています。
第7章まで順調にきたのですが、第8章「Twitterと連携する」で躓きました。
Twitter4Jの3.03をインストールしたのですが、
なので、p75のリスト3.13、p79のリスト3.14が動作しませんでした。
参考サイトを参考に、以下のように書き換えることで実行することができました。
List3_13
import twitter4j.*; import twitter4j.conf.*; Twitter twitter; String consumer_key = "dev.twitter.comで取得した値をここに入力"; String consumer_secret = "dev.twitter.comで取得した値をここに入力"; String oauth_token = "dev.twitter.comで取得した値をここに入力"; String oauth_token_secret = "dev.twitter.comで取得した値をここに入力"; PImage icon = null; String tweet = ""; String user_name = "tenkijp"; void setup() { size(640, 480); PFont myFont = createFont("Osaka", 48); textFont(myFont); ConfigurationBuilder cb = new ConfigurationBuilder(); cb.setDebugEnabled(true) .setOAuthConsumerKey(consumer_key) .setOAuthConsumerSecret(consumer_secret) .setOAuthAccessToken(oauth_token) .setOAuthAccessTokenSecret(oauth_token_secret); TwitterFactory tf = new TwitterFactory(cb.build()); twitter = tf.getInstance(); try { icon = loadImage(twitter.showUser(user_name).getOriginalProfileImageURL(), "png"); ResponseList <Status> statusList = twitter.getUserTimeline(user_name); if (statusList.size() > 0) { tweet = statusList.get(0).getText(); } } catch(TwitterException e) { println(e.getStatusCode()); } noLoop(); } void draw() { background(128); translate(width / 2, height / 2); drawTweet(icon, tweet); } void drawTweet(PImage icon_image, String tweet_text) { pushMatrix(); image(icon_image, 0, 0, 100, 100); noStroke(); fill(255, 255, 255); rect(-150, -130, 400, 110); triangle(40, -20, 50, -10, 60, -20); fill(0, 0, 0); textSize(15); translate(0, 0, 1); text(tweet_text, -145, -125, 400, 200); popMatrix(); }
List3_14
import twitter4j.*; import twitter4j.conf.*; Twitter twitter; String consumer_key = "dev.twitter.comで取得した値をここに入力"; String consumer_secret = "dev.twitter.comで取得した値をここに入力"; String oauth_token = "dev.twitter.comで取得した値をここに入力"; String oauth_token_secret = "dev.twitter.comで取得した値をここに入力"; void setup() { ConfigurationBuilder cb = new ConfigurationBuilder(); cb.setDebugEnabled(true) .setOAuthConsumerKey(consumer_key) .setOAuthConsumerSecret(consumer_secret) .setOAuthAccessToken(oauth_token) .setOAuthAccessTokenSecret(oauth_token_secret); TwitterFactory tf = new TwitterFactory(cb.build()); twitter = tf.getInstance(); } void draw() { background(0); stroke(255, 255, 255); line(mouseX, 0, mouseX, height); line(0, mouseY, width, mouseY); } void mousePressed() { try { twitter.updateStatus( "座標(" + mouseX + ", " + mouseY + ") -- AR練習中" ); } catch (TwitterException e) { println(e.getMessage()); } }
座標(24, 75) -- AR練習中