TwitterAPIを利用するためのOAuth認証処理ライブラリについて

サイトからTwitterAPIを利用出来るようにするためには、OAuth認証を通す必要があります。そもそもOAuthって何?というところについては、こちらの解説を一旦お読みください。

第1回 OAuthとは?―OAuthの概念とOAuthでできること:ゼロから学ぶOAuth|gihyo.jp … 技術評論社

まず、APIを利用するにあたって、Twiiter Developersに登録が必要になります。

ネコとウサギとオブジェクト – TwitterAPIを使用する為にアプリケーションの登録を行う

登録が完了すれば、Consumer keyとConsumer secretが取得出来ますので、それを使ってTwitter連携の認証画面にアクセス出来るようになります。

TwitterのOAuth認証については、既に便利なライブラリが公開されていたりますので、そちらを利用させて頂きました。使い方についても解説記事がありましたので、参考にしています。

Twitter OAuth + PHP でログイン処理の実装

Twitteroauthは、アクセスしたユーザーのセッションにAPIへのアクセストークンが無ければTwitter認証画面へリダイレクトし、Twitterからのコールバック時に自動的にアクセストークンを取得して$_SESSIONに保存してくれるというものです。TwitterAPIで連携サイトを作る場合の、まず最初の一歩を助けてくれます。

このライブラリでは、APIを実際に利用する際の関数も用意してくれているのですが、プロフィール画像の変更に必要な画像の送信に関する部分は、これだけでは非対応なので、ちょっと改修する必要があるようでした。twitteroauth.phpを、こちらのものに差し替えると、APIに画像のPOSTリクエストが可能になります。差分は主に「function oAuthRequestImage」のあたりだと思います。

TwitterOAuth でアイコンや背景画像が変更出来るように修正

実際にiconDecotter上での実装は下図のようになっています。auth.phpはcallback.phpと同等です。

OAuthの流れ

これで、TwitterAPIを利用してプロフィール画像を変更する下地が揃いました。あとは取得したアクセストークンを使うだけになります。なお、iconDecotterでは、APIのうち主に下記のAPIのみ使用しています。

  • users/lookup(ユーザーの情報取得:ユーザー名、現在のプロフィール画像のURL等)
  • account/update_profile_image(プロフィール画像の変更)
  • statuses/update(ツイート)

※ちょっと前にTwitter上で、連携アプリの許可レベルについて話題になったりしましたが、iconDecotterではツイートはともかく、プロフィール画像の変更までを行う場合「Write」権限が必要であり、その際「フォローする」等の権限もくっついてきてしまっています。これはTwitter側の仕様の問題ですので、そうせざるを得なくなっています。しかし権限はありますが、このアプリに至っては特に使用はしていません、ということです。

コメント

タイトルとURLをコピーしました