2015年3月16日月曜日

Processing + Twitter4j で OAuth 認証 - その1

ご無沙汰しております。卒論に追い回されたり虫垂炎の手術を受けたりで、気づけば3月もなかば。もう社畜へのカウントダウンが始まってるよ。春からはSEの卵として頑張りながらも、勉強したことをちょこちょこ書き留めていければいいな。

さて、今回は OAuth に挑戦です。OAuth の仕組みについては、参考で上げている解説ページにて分かりやすく説明されています。つまり、Twitter 側にリクエストを送って、特定のアカウントへのアクセスの許可をもらう仕組みですね。セキュリティを考慮して、PIN コードによる認証を使っていきたいと思います。そして最後に、タイムラインを画面に表示してみましょう。

参考:Java で Twitter を OAuth 認証して使える Twitter4J とは (1/3)
参考:OAuth 認証に WebView を使うのはやめよう

  • ライブラリをインポート&変数の宣言

前回までとは違って、とても多いですね。詳しく見ていきましょう。

まず、accessToken と accessSecret は指定しません。これらは認証に成功すると、Twitter から送られてきます。certification は、Twitter から認証されたことを判別する boolean 型の変数です。certification, iterations, displayGUI は繰り返しを制御するための変数ですが、細かいことは後ほど。TexeField は PIN を入力するためのテキストフィールドを扱う型で、入力された文字列を inputLine として保持し、最後に文字列の pin に代入します。


  • setup() 関数、draw() 関数

setup() 関数、draw() 関数をまとめて確認しましょう。

setup() 関数では、オブジェクトの代入や画像の読み込みを行います。当然ですが、はじめは Twitter へのアクセスの許可が得られていないので、doOAuth() を実行してリクエストを送ります。draw() 関数では、certification が false のときだけボタンを表示するようにしています。また、次回で解説する getPIN() の実行やテキストフィールドの表示も1回でいいので、displayGUI を false にして同じ処理が繰り返されないようにします。


  • doOAuth() 関数

認証画面へ遷移させます。

Twitter から認証されるまでは、accessToken は null です。requestToken は、try - catch 構文で取得します。例外に TwitterException を指定しないとダメみたいですね。その後、requestToken を使って認証画面のURLを発行し、ブラウザからアクセスします。アクセスは1回でいいので、iterations を false にします。そうしないと、この url に毎フレームアクセスし続けてしまい、ブラウザの新規タブが増えてパソコンが大変なことになります(経験者は語る)。

余談になりますが、今回のエントリから文字が両端揃えになっています。WebKit系ブラウザでは文字の両端揃えが難しいということを紹介しているサイトもあって少しビビっていたのですが、<p align = "justify"></p> で問題なく表示できました。完全に整ってはいませんが、ずいぶん見やすくなりました。よかったよかった。こんなに更新頻度の低いブログでも、少しずつ進化しております。

参考:WebKit 系ブラウザ(Chrome / Safari)で両端揃えはできないの? jQuery で検証してみた

次回はPIN コードを入力するためのテキストフィールドを表示する関数や、マウスをクリックした時の処理を書き加えて、プログラムを完成させましょう。

0 件のコメント:

コメントを投稿