twitterアプリケーション

| コメント(0) | トラックバック(0)


twitterと連携するアプリケーション作成のためのAPI群です。

 

OAuthというツイッターの認証機能を利用できる仕組みがあるので、

お手軽に、しかもユーザにとっても安心・安全に利用できる仕組みになってる。

 

OAuthを利用するためには、アプリケーションを登録しないといけないので、

http://twitter.com/apps

上記より、登録します。

 

登録すると、Consumer key、Consumer secret という情報を取得できるので、

その情報を利用して、ユーザを、twitterの認証ページに誘導し、アプリの利用の

同意を頂くと、アプリから、そのユーザができる操作を代行できるようになる。

 

今回は、好きな"お酒"のことに特化したつぶやきをするためのアプリ、

「つい飲み」というWebアプリを作成してみた。

"いまなにのんだ?"をコンセプトに、飲んだお酒と"つぶやき"を投稿するアプリ。

(また、#sake というカテゴリが自動で設定されるようになってます)

 

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のよう

なので、とりあえず問題はないかと...。


 とりいそぎ最低限のラインで作成してみたので、

また機能アップしていきたいと思います。

 

トラックバック(0)

トラックバックURL: http://pg2se.com/mt6/mt-tb.cgi/58

コメントする