サイトから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と同等です。
これで、TwitterAPIを利用してプロフィール画像を変更する下地が揃いました。あとは取得したアクセストークンを使うだけになります。なお、iconDecotterでは、APIのうち主に下記のAPIのみ使用しています。
- users/lookup(ユーザーの情報取得:ユーザー名、現在のプロフィール画像のURL等)
- account/update_profile_image(プロフィール画像の変更)
- statuses/update(ツイート)
※ちょっと前にTwitter上で、連携アプリの許可レベルについて話題になったりしましたが、iconDecotterではツイートはともかく、プロフィール画像の変更までを行う場合「Write」権限が必要であり、その際「フォローする」等の権限もくっついてきてしまっています。これはTwitter側の仕様の問題ですので、そうせざるを得なくなっています。しかし権限はありますが、このアプリに至っては特に使用はしていません、ということです。
コメント