facebook sdk for php を使う (v2.5対応)
facebook は graph api を使って操作できる。それを使った PHP の SDK も存在する。
https://developers.facebook.com/docs/reference/php/4.0.0
これを使うには APP ID を取得する必要がある。
APP IDの取得
先ずはデベロッパーサイトにアクセス。https://developers.facebook.com/
My Apps メニューにカーソルを合わせると、Add a New App が表示されるので、それをクリック。
とりあえず www ウェブサイトをクリック
入力フィールドに妥当な名前を入力して(fb とか facebook は使えないキーワードになっているらしい)、Create New Facebook App ID ボタンをクリック
カテゴリを選択
「アカウントの認証を実行してください」と出るので「携帯電話」を選択
パスワードを再入力する必要があるので入力
携帯のメールアドレスを入力
これでアプリケーションが登録できる。My Apps から各種設定ができるようになる。
SDK のダウンロード
ここら辺を参照してダウンロードする。
適当な場所に配置する。
ログインのサンプル
このページ にある、login.php と fb-callback.php を打ち込めば先ずはログイン可能。
app_id と app_secret は自分のものを使うこと。
実際の流れとしては、以下の様になるので、イントラからも動作確認できる。
- login.php が facebook を呼び出す。
- facebook が認証を行うと、レスポンスに fb-callback.php へのリダイレクトを返す。
- ブラウザ側で fb-callback.php にリダイレクトする。
ただし、localhost を使う場合は、OAuth redirect URIS に localhost を設定する必要がある。
セッションなどを利用して、login.php と fb-callback.php の2ファイルに分けずに、1ファイルで実装する方法もある。
OAuth redirect URIS の設定
My Apps の Setting → Advanced → Client OAuth Settings → Valid OAuth redirect URIS に “http://localhost/” を追加する。
Upload photos examples
自分のタイムラインに画像をアップする場合は ここのサンプル を参考に。
login.php はリダイレクト先を変更して使用する。
ちなみに自分のアルバムを参照する場合は、権限に user_photos を追加する必要がある。
me の部分に特定のアルバムID を指定することで、そのアルバムに対して画像をアップロードできるようになる。
アルバムの一覧は https://graph.facebook.com/me/albums?access_token=アクセストークン で取得しておく。
作ったアプリをアカウントに紐づける
上のサンプルはログインがあるので、それを使ってページのアカウントで入れば、アプリに登録される。
ちなみに、後から権限を追加しようとしても正しく追加できない場合は、アプリを一旦削除してから再ログインする。
Canvasなどのログインを作らないようなアプリの紐づけは Tools&Support の Gtaph API Explorer で、アプリケーションに作ったアプリを指定して Get Token すれば良い。