TwitterにPOSTするソースを書いてみた

さっくり書いてみた。
Javaのライブラリをつかったので所要時間約20分。



使用したのはtwitter4jというライブラリ。
TwitterAPIのJavaラッパ。

package nanoha;

import twitter4j.Status;
import twitter4j.Twitter;

public class Post {

	public static void main(String[] args) {
		try{
		    Twitter twitter = new Twitter("id","pass");
		    Status status = twitter.update("キラッ☆");
		    System.out.println(status.getText() + " POSTED");	
		}catch(Exception e){
			System.out.print(e.getMessage());
		}
	}

}

はてなスゲェ。ちゃんとJavaソースモードってのがある。
hatena++

Twitterクラスのコンストラクタでid、passを設定。
Twitter.update(String str)でPOSTしてる。

意外と簡単。

というわけでちょっと拡張。なんちゃってランカ・リーBOT

package nanoha;

import twitter4j.Status;
import twitter4j.Twitter;

public class Post {

	public static void main(String[] args) {
		try{
		    Twitter twitter = new Twitter("id","pass");
		    Message message = new Message();
		    Status status = twitter.update(message.getMessage());
		    System.out.println(status.getText()+ " POSTED");
		}catch(Exception e){
			System.out.print(e.getMessage());
		}
	}

}

変えたのはtwitter.updateの引数を別クラスMessage.getMessageから取得。

package nanoha;

import java.io.Serializable;

public class Message implements Serializable {


	private static final long serialVersionUID = 6800304536387548747L;
	
	private String[] messageList = new String[]{"キラッ☆",
					"流星にまたがって",
					"あなたに急降下",
					"ah ah",
					"濃紺の星空に",
					"私たち花火みたい",
					"心が光の矢を放つ",
					"あなたに急上昇",
					"oh oh",
					"濃紺の星空に",
					"私たち花火みたい",
					"心が光の矢を放つ",
					"身体ごと透き通り",
					"絵のように漂う",
					"けし粒の生命でも",
					"私たち瞬いてる",
					"魂に銀河 雪崩れてく",
					"キラッ☆",
					"キラッ☆",
					"キラッ☆"
				};
	
	public String getMessage(){
		String result = messageList[(int)(Math.random()*20)];
		return result;
	}

}

素数20の配列の中からランダムで取得してる。

(int)(Math.random()*20)

(int)Math.random()*20

とで挙動がちがうという初歩的なミスをしてた罠。
上は0〜20を返すが下は常に0。
(int)Math.random()が常に0になる罠・・・・orz