× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
前回の記事はここ
twitterAPIを使うには(途中) ◎前回の流れ twitterAPIの公式ページ http://dev.twitter.com/doc 日本語で参考になるWikiのページ http://usy.jp/twitter/index.php?Twitter%20API#y369b038 認証をしないで使うことのできるAPIを使った String requestUrl = "http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=myname"; URL accessURL = new URL(requestUrl); URLConnection con = accessURL.openConnection(); で、次にOAuth認証をしようとして頓挫。 これが前回までの経緯。 その辺を突破して、つぶやき投稿するところまでできたのでここに記す。
◎OAuth認証の仕方・アプリケーションの登録
twitter内のOAuth認証について書いたページ http://dev.twitter.com/pages/auth このページで、自分がtwitterを使うアプリケーションを登録する http://twitter.com/apps/new こういう画面が出る。 注意点としては、Application Type で Browser を選ぶこと。 でないと、認証しにいったときにOAuthCommunicationExceptionが発生する。(前回はここで頓挫した) あと、Default Access Type は Read, Write, & Direct Messages を選ぶ。Readオンリーとかだと投稿できない。 登録すると、このような画面で確認できる。 ◎OAuth認証・コーディング 参考にしたページ http://blog.unfindable.net/archives/1697 コーディングについては、このページを見れば分かる。 流れとしては、 1.認証用のインスタンス OAuthConsumer consumer_; //アプリケーション側認証用データを保持するインスタンス OAuthProvider provider_; //twitter側認証用データを保持するインスタンス を作成する。 2.認証用URLを作成する String authUrl = provider_.retrieveRequestToken(consumer_, OAuth.OUT_OF_BAND); 3.ユーザが認証用URLに自分で行く。 4.ユーザがそこで表示されるPINを入力する 5.入力されたPINで認証 provider_.retrieveAccessToken(consumer_, pin); これで例外が発生しなければ認証が成功したことになる。 詳しくは分からないけど、token とか tokenSecret というユーザ固有のデータを取得し、これが認証の鍵となるようだ。 6.つぶやきを投稿する //URL作成。URLの引数としてつぶやきの本文が含まれる StringBuilder strMessage = new StringBuilder(strTweet); StringBuilder strBody = new StringBuilder("status="); strBody.append(URLEncoder.encode(strMessage.toString(), "UTF-8").replace("+", "%20")); URL url = new URL("http://api.twitter.com/1/statuses/update.xml?" + strBody); //投稿 HttpURLConnection connection = (HttpURLConnection)url.openConnection(); connection.setRequestMethod("POST"); //認証(多分) consumer_.sign(connection); //成功判定 if (connection.getResponseCode() == HttpURLConnection.HTTP_OK){} 投稿に失敗するときは、DefaultAccessTypeが間違っているとか、 あと1時間に70回までしかAPIリクエストできない制限にひっかかってるかも。 3.4.の流れが面倒くさい。 まあ、最初の一度だけやってもらえれば、consumer_のtokenとtokenSecretは同じユーザならずっと同じなので、記録しておけば2度目からはPIN入力とかは不要になる。 でも、firefoxのプラグインとか使えば、この辺の作業を一気にやってくれるものがあるらしい。 確かに、もどって来るHTTPだかXMLだかJSONだかを解析すればいい話だから、やればできるのかも。 しかし、ユーザが自分で「はい、認証します」のボタンを押す手間があるのをどうするか。 ◎さらに・・・ twitter4j という twitterAPIのラッパがあるらしい。 http://twitter4j.org/ja/index.html 簡単に認証とか投稿とかできるらしいよ!? PR |
|
トラックバックURL
|