拙著『Webアプリケーション構築入門』では、「Webアプリを作れるようになる前に、Webアプリを使えるようになるのが大事」という方針のもと、比較的早い段階で、JavaとPHP、JavaScriptでウェブAPIを利用する方法を紹介しています。
そこで採用したウェブAPIの一つがTwitter APIですが、入門書であることと、紙面が限られていることを理由に、OAuth認証なしでも使えるPublic Timelineだけしか紹介しませんでした。
OAuth認証を使ってつぶやく方法は、このブログで以前紹介しましたが(該当記事)、その後、Mavenを紹介したり(該当記事)、Twitterのサイト上で自分用のトークンを作れるようになったりしたので、「プログラムからつぶやく方法」を改めて書いておきましょう。
Twitterアプリの準備
- まず、Twitter DevelopersにTwitterアカウントでログインし、「Create a new app」をクリック、アプリケーションを登録します(コールバックURLはあとで変えられるので適当に入れておけばいいでしょう。今回は使いませんが)。
- つぶやくためにはWrite権限が必要なので、SettingsタブでApplication Typeを「Read & Write」に変更します。
- Detailsタブに戻って、「Create my access token」をクリックし、Access tokenとAccess token secretを生成します。このページに書かれているConsumer keyとConsumer secretも使います。
Mavenプロジェクトの作成
Mavenプロジェクトを作成し、pom.xmlのdependencies要素の中に次のように記述します(TwitterのためのライブラリであるTwitter4Jを使います)。(参考:『Webアプリケーション構築入門』のウェブアプリをMavenで管理する方法)
<dependency> <groupId>org.twitter4j</groupId> <artifactId>twitter4j-core</artifactId> <version>[2.2,)</version> </dependency>
つぶやくためのコード
つぎのようなコードでつぶやきます。
import twitter4j.*; import twitter4j.conf.*; public class Tweet { public static void main(String[] args) throws Exception { ConfigurationBuilder cb = new ConfigurationBuilder(); cb.setDebugEnabled(true) .setOAuthConsumerKey(**Consumer key**) .setOAuthConsumerSecret(**Consumer secret**) .setOAuthAccessToken(**Access token**) .setOAuthAccessTokenSecret(**Access token secret**); TwitterFactory tf = new TwitterFactory(cb.build()); Twitter twitter = tf.getInstance(); twitter.updateStatus("テスト at " + (new java.util.Date())); } }