arcanum_jp’s blog

おっさんの日記

Twitter botが作りたい。

普通は始めに覚えるんだろうけど、TwitterAPI(Twitter4j-2.1.8)を使ってのサンプル。

ツイートするとか、する前に、どーするか

 クラスパスのルートに、twitter4j.propertiesを作って入れてあげる。ぼくのツイッターIDはarcanum_jpなので、こうなる。

id=arcanum_jp
oauth.consumerKey=XXXXXXXXXXXXXXXXXXX
oauth.consumerSecret=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


追記:2010/12/17
 上のidを書いてしまうとBASIC/xAuth認証をしようとするので、書かないほうがいいね!

 Twitterクラスのインスタンスを取得する。new Twitter(...)は非推奨らしいので、ファクトリクラスを使用する。ファクトリクラスには例のAccess tokenを入れてあげる。

TwitterFactory tf = new TwitterFactory();
AccessToken at = new AccessToken("**取得したACCESS_TOKEN**", "**取得したACCESS_TOKEN_SECRET**");
Twitter tw = tf.getOAuthAuthorizedInstance(at);

...
// つい〜と
tw.updateStatus("今日も元気だお酒がうまい");
// ダイレクトメッセージ
tw.sendDirectMessage("arcanum_jp", "こんにちは、あいかわらず変ですね。www");
// フォローする
tw.createFriendship("arcanum_jp");
// フォロー解除する
tw.destroyFriendship("arcanum_jp");

追記:2010/12/17
プロパティファイルでヤル必要がないんであれば。プログラム上から入れてしまうのもアリらしい

ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
  .setOAuthConsumerKey(取得したCONSUMER_KEY)
  .setOAuthConsumerSecret(取得したCONSUMER_SECRET)
  .setOAuthAccessToken(取得したACCESS_TOKEN)
  .setOAuthAccessTokenSecret(取得したACCESS_TOKEN_SECRET).setDebugEnabled(true);
TwitterFactory tf = new TwitterFactory(cb.build());

Twitter tw = tf.getInstance();