「facebook」タグアーカイブ
facebookのアクセス解析はどうするのか?
facebook のアクセス解析はインサイトを使う。
ただし・・・
- facebookページ(旧ファンページ)限定らしい。
- 個人ページは不可(ええー!)
- 30人以上が「いいね!」しないと使えない。
ページタブアプリやキャンバスアプリなどに Googleアナリティクスのコードを埋め込むのは可能だけれど
そこのページが参照されないとカウントできない。
Googleアナリティクスでは ソーシャルレポート という機能は用意されている。
これは、ソーシャルボタンで共有したコンテンツと場所を把握するというものなので
facebookのアクセス解析とは意味合いが異なる。
動作確認用に facebookページ を作った。
インサイトを試してみたいので良かったら「いいね!」してね。
facebookページにページタブを追加する。
先ずは Developersサイト からアプリを追加
My Apps → Add a New App で Facebook キャンバスを選択。名前を付けて Create New Facebook App ID でアプリを作成。
アプリの設定
さっき作ったアプリを選択して
設定 → Basic → + Add Platform → ページタブ を選択。
Secure Page Tab URL(https で接続できる URL)、Page Tab Name、Page Tab Image(111×74) を設定。
[変更を保存] で設定を保存する。
アカウントと紐づけ
Tools&Support の Graph API Explorer で作成したアプリケーションを選択して Get Token する。
ページタブを表示するだけなら manage_pages 権限だけで良さそう。
facebookページにページタブを追加する方法
http://www.facebook.com/add.php?api_key=作ったアプリのID&pages=1
初回のみ [Facebookページを選択] になるので、追加したい facebookページを選択する。
手っ取り早くページタブを使いたいなら
Static HTML の様なサービスもある。これを使えばデベロッパー登録なしにページタブが使える。
1タブなら無料で使える。
わかったこと
個人ページにはページタブは追加できなそうだ。
ページ内のリンクから遷移したい場合は、target=”_parent” に設定する必要がある。(iframeなので)
タイムライン対応後や v2.5 は情報が少なすぎて・・・ orz
ついでに WordPress の固定ページをリソースにしてみた。
無料ホームページスペースでも、管理ページを https 経由でアクセスするように設定にすると、https でもアクセスできるようになるものがある。
(このサイトとか。でも証明書はいまいちなのでブラウザ(FireFoxなど)によっては、初回の例外登録かも。)
- https で接続できないと facebook に設定できないので、https で接続するように修正する。
- 次に facebook 用のテンプレートを作成する。テーマの中に Template Name: ~ と記述されている php があるはずなので、それのどれかをコピー。
ヘッダーや、サイドバー、フッターが無いような記述に変更して、Template Name を facebook とかにしておく。 - 固定ページを作成する。その際に、テンプレートを facebook 用のものにしておく。
- facebook のアプリで、ページタブの Secure Page Tab URL やキャンバスの Secure Canvas URL に固定ページのフルパスを記載
これで、この ワードプレス の固定ページで 側が修正できるようになる。
ちなみに、作ったテンプレートの先頭に以下の様なコードを書いておくと幸せかもしれない。(リファラを偽装されたらアウトだけど)
1 2 3 4 5 |
// facebook 以外からアクセスされたら別ページに飛ばす。 if (!preg_match("/^https:\/\/.*?\.facebook\.com\//", $_SERVER['HTTP_REFERER'])) { header('Location: facebook以外からアクセスされたら飛ばすURL'); exit; } |
同じような方法で・・・
a-blog cms や MovableType で実装する方法もあるらしい。
自分としては使い慣れた WordPress の方が楽だし十分かな。
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 すれば良い。
facebook のID を取得する
各個人のプロフィールページのページID
ユーザIDと同じ
https://www.facebook.com/profile.php?id=10001********770 = https://www.facebook.com/10001********770
Facebookページ(旧ファンページ)のIDを取得する
アクセストークンがない場合は、基本データのページ情報の下に FacebookページID が表示されている。
アクセストークンが判っている場合は
https://graph.facebook.com/ページ名/?access_token=アクセストークン
1 2 3 4 |
{ "name": "ページ名", "id": "ページID" } |
自分が管理しているページの一覧は
https://graph.facebook.com/me/accounts?access_token=ページ管理者の個人アクセストークン
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
{ "data": [ { "name": "ページ1の名前", "access_token": ページ1のアクセストークン, "category": "ページ1のカテゴリ", "id": "ページ1のID" }, { "name": "ページ2の名前", "access_token": ページ2のアクセストークン, : }, : ] } |
アルバムのIDを取得する
アルバムの各ページで引数に渡される a. ~ . までがアルバムのID
https://www.facebook.com/media/set/?set=a.1403467****7346.10737****7.1402580****2884&type=3