S-JIS[2010-09-11/2010-09-19] 変更履歴

Twitter認証

Twitterへアクセスする際は、Twitterにログイン(認証)する必要がある。
Twitterへ接続するアプリケーション(クライアントソフト)も、それを使用する対象ユーザーでログインする必要がある。


Basic認証

ユーザーID・パスワードを入力してもらい、それをアプリがそのままTwitterへ渡してログインするのが、Basic認証。
一番手軽だが、2010年8月31日に廃止されて使えなくなった。


OAuth認証

Basic認証の代わりに使われるのがOAuth。(自分は「オーオース」と読んでいる)

ブラウザータイプのアプリの場合
アプリはTwitterのログイン(認証)画面を(ブラウザーで)開き、利用者はそこでユーザーID・パスワードを入力する。
すると、アプリ側にはTwitterからOKという返事が返ってくるので、Twitterに接続できるようになる。
クライアントタイプのアプリの場合
アプリは認証用URLを表示し、利用者がそのURL(Twitterのログイン(認証)画面)にブラウザーでアクセスする。
利用者がユーザーID・パスワードを入力すると、暗証番号が表示される。
アプリにその暗証番号を入力すると、Twitterに接続できるようになる。

ユーザーがパスワードを入力するのはTwitterに対してなので、アプリ側は直接知ることが出来ない。なので安全。ということらしい。

OAuthを使う為には、“OAuthを使うアプリケーション”をTwitterに事前に登録しておく必要がある。
(そのアプリケーション専用の認証情報(キー等)を発行してもらう)


OAuth アプリケーション登録申請

OAuthの登録自体はすぐ済む。
アプリ自体が出来ていなくても、事前に申請できる。審査といったものも特に無い。

  1. Twitterアプリケーションを開く。
  2. Twitterにログインする。(既にログインしていた場合は不要)
  3. 「新しいアプリケーションを追加」をクリックし、アプリケーション登録申請画面を開く。
  4. 必要事項を入力する。
    項目 説明 値の例
    アプリケーション名 アプリの名前
    自分のアプリ一覧に表示される。
    また、このアプリを使ってツイートを投稿した際、投稿元アプリの名前(「API」の代わり)として使われる。
    後からアプリ名を変えると、タイムラインで表示される投稿元アプリ名も変わる。
    API勉強用クライアント
    アプリケーションの説明 アプリの説明 Twitter APIの実験用
    アプリケーションのウェブサイトURL 省略不可。
    「アプリのダウンロードが出来るURL」とか書いてあるけど、公開するつもりの無いアプリならそんなの無いよな〜。
    とりあえず自分のHPのURLでも入れておけばいいようだが。
    このアプリを使ってツイートを投稿した際、Webでツイートを見ると、投稿元アプリ名のリンクとしてこのURLが使われるようだ。
    なのであまり変なものは入れない方が良さそう^^;
    http://〜.html
    所属会社/団体 所属団体と言うより、作者名と言った方がいい気がする。
    省略可能ではあるが、実際に認証するときの画面で表示されるので、入力しておく方が良さそう。
    ひしだま
    アプリケーションの種類 「クライアントアプリケーション」か「ブラウザアプリケーション」のどちらかを選ぶ。
    「クライアント」の場合、「コールバックURL」の入力は不要となる。
    ・クライアント
    コールバックURL 「クライアントアプリケーション」の場合は入力不要。
    「ブラウザアプリケーション」の場合は必須。[2010-09-19]
    なお、「localhost:8888」を指定する事は出来ないようだ。
    http://〜
    Default Access type 「Read & Write」か「Read-only」を選ぶ。 ・Read & Write
    アプリケーションのアイコン 後から変えられるので、とりあえず何も入力しなくてよい。  
  5. 「アプリケーションを登録する」ボタンをクリックする。
  6. 規約っぽいものが表示されるので、「Accept」を押す。
  7. すると、登録された内容が表示される。
    項目 説明
    ページ全体 タイトル 自分が登録したアプリ名 Settings」
    @Anywhere Settings API key  
    Registered Callback URL 「クライアントアプリケーション」の場合は値は表示されない。
    OAuth 1.0a Settings Consumer key 英数字の羅列。
    Consumer secret 英数字の羅列。
    フォローをリクエストしました。 リクエストトークンを送るためのAPI(URL)か?
    Access token URL アクセストークンを送るためのAPI(URL)か?
    Authorize URL 認証するためのAPI(URL)か?
    General アクセスレベル 「読み書き」「読取専用」

Twitterアプリケーションページを開くと、自分が登録しているアプリケーションの一覧が表示される。
アプリケーション名をクリックすると、登録された内容を確認できる。
「Edit Details」をクリックすると、登録された内容を変更できる。見た感じ、登録した際に入力した全項目を変更できるようだ。
アプリケーションの削除もここから出来そう。


OAuth認証画面の例

OAuthによる認証の実行例。

まず、アプリケーションは認証用の「https://twitter.com/oauth/authorize?oauth_token=hogehogeufufu」という感じのURLを生成し、ユーザーはブラウザーを使ってそこにアクセスしなければならない。
(「oauth_token=」の後ろの部分はConsumer keyConsumer secret等を使って生成する。毎回文字列は変わる)

クライアントアプリケーションの場合、ユーザーは別途ブラウザーを起動してそのURLにアクセスする必要がある。
ブラウザアプリケーションの場合は(既にブラウザー上で動いている訳だから)そのURLにリダイレクトするだけでいい。

表示される画面は以下のようなもの。

「許可する」をクリックすると、クライアントアプリケーションの場合は暗証番号が表示される。

この暗証番号をクライアントアプリケーションに入力すると、アプリケーションがそのユーザーとしてTwitterにアクセスできるようになる。


Twitter4JでOAuth認証を使うクライアントアプリのコーディング例
Twitter4JでOAuth認証を使うGoogleAppEngine(Slim3)のブラウザアプリのコーディング例


Twitter目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま