twitterと連携するアプリケーション作成のためのAPI群です。
OAuthというツイッターの認証機能を利用できる仕組みがあるので、
お手軽に、しかもユーザにとっても安心・安全に利用できる仕組みになってる。
OAuthを利用するためには、アプリケーションを登録しないといけないので、
http://twitter.com/apps
上記より、登録します。
登録すると、Consumer key、Consumer secret という情報を取得できるので、
その情報を利用して、ユーザを、twitterの認証ページに誘導し、アプリの利用の
同意を頂くと、アプリから、そのユーザができる操作を代行できるようになる。
1.ログインボタンを押す
2.Consumer key、Consumer secretを 設定しtwitterの認証ページにリダイレクト
3.認証が成功すると、事前に設定したアプリのページに自動で戻ってくる
4.AccessTokenという、認証が成功したユーザを操作するための権限を取得する
5.AccessTokenを利用して、”つぶやく” など、必要な処理を呼び出す。
今回は、Java(Struts2)を利用して、Webアプリケーションを作成した。
※twitter4jというOAuthも手軽に利用できるライブラリがあったので。
要点のコードを抜粋
//最初にtwitterのサイトへ誘導し認証させる
Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer("xxxxxxxxxx", "yyyyyyyyyy");
RequestToken token = twitter.getOAuthRequestToken();
sessionMap.put("twitter", twitter);
response.sendRedirect(token.getAuthenticationURL());
//次に認証が成功すると任意のページへリダイレクトされるので権限を取得
Twitter twitter = (Twitter)sessionMap.get("twitter");
if (twitter != null) {
AccessToken token = twitter.getOAuthAccessToken();
sessionMap.put("token", token);
}
//権限を利用してアプリから”つぶやき”を投稿
AccessToken token = (AccessToken)sessionMap.get("token");
if (token != null) {
Twitter twitter = (Twitter)sessionMap.get("twitter");
twitter.updateStatus("つぶやきを投稿");
}
※これでひととおりの操作が可能です。
つぶやき以外にも様々な操作がAPIで提供されてます。
※携帯からの利用についてですが、twitterの認証機能は、https対応ですが
携帯で表示時にtwitterの証明書ではエラーになるようです。
なので、HTTPリクエストのヘッダーで、携帯からのアクセスかを判断して、
携帯からの場合は、HTTPSを、HTTPへ書き換えてあげるとうまくいきます。
セキュリティが弱くなるけれど、twitterで通常の携帯ログインもHTTPのよう
なので、とりあえず問題はないかと…。
とりいそぎ最低限のラインで作成してみたので、
また機能アップしていきたいと思います。