Archive for the ‘ Facebook ’ Category

facebook DEVELOPERSで「アプリのプロフィールページを見る」が出ない時の対処方法

facebookページを作成する際にfacebook DEVELOPERSでアプリの作成をしますが、「アプリのプロフィールページを見る」が今回だけなぜか表示されず、ハマったのでメモ。

ブラウザのURL欄に

http://www.facebook.com/add.php?api_key=XXXXXXXXXXXXX&pages=1

を入力(XXXX…はアプリのAppID/API Key)

そうすると「◯◯を追加しますか?」という画面になるので、追加先を選べばfacebookページが追加されます。

追記:
「アプリのプロフィールページを見る」が表示されなかったのは、Facebook側で2011.12.10以降に追加したアプリについてFrameタブ追加方法、アプリのページの作成方法が変更になったのが原因でした。

FacebookでOGPの修正がウォールに反映されない時の対処方法

Facebookでいいねボタンをクリックしてもらったときにウォールに流れる情報を最適化できるOGP(Open Graph Protocol)タグで、metaの内容を修正したにも関わらずウォール反映されない場合は、FacebookのDebugger(旧URLリンター)を使用することでFacebook側のキャッシュを強制的にクリアすることができます。

基本的にOGPがきちんと適応できているか確認したりmetaタグ内容のチェックなどで使われているツールですが、キャッシュクリアまでできるんですね。メモ。

Facebookページでファンゲートを実装

iframeを使用したFacebookページで「いいね」をクリックしていない人とクリックした人で見せるコンテンツを変える方法です。

まずユーザーが「いいね」を押しているかどうかを判別する以下のコードをparse_signed_request.phpとして外部サーバー(コンテンツページを置くサーバー)にアップします。

<?php
function parse_signed_request($signed_request, $secret) {
  list($encoded_sig, $payload) = explode('.', $signed_request, 2); 
  // decode the data
  $sig = base64_url_decode($encoded_sig);
  $data = json_decode(base64_url_decode($payload), true);
  if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
    error_log('Unknown algorithm. Expected HMAC-SHA256');
    return null;
  }
  // check sig
  $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
  if ($sig !== $expected_sig) {
    error_log('Bad Signed JSON signature!');
    return null;
  }
  return $data;
}
function base64_url_decode($input) {
  return base64_decode(strtr($input, '-_', '+/'));
  }
?>

ウェルカムページ等のxxxx.phpなどではbody直下に以下のような条件分岐を記述して、ファンならばaaa.htmlを表示、そうでないならbbbb.htmlを表示。

<?php
include 'parse_signed_request.php';
if (isset($_POST['signed_request'])) {
    $data = parse_signed_request($_POST['signed_request'], 'xxxxxxxxxxxxx');
}
if($data['page']['liked'] == '1'){
include 'aaa.html';
} else {
include 'bbb.html';
}
?>

※ xxxxxxxxxxxxx はFacebook開発ページでアプリを作成した際に表示される「アプリの秘訣」キーを入力。

ウェルカムページも下のコンテンツが透けて見えたり、思わせぶりなコピーがあったりと、いろんな見せ方でファンゲートを実装していて発想の参考になります。

FacebookのカスタムタブでSSLサポートされていないページを見る設定

Facebookの外部サーバーを利用したiframeベースのカスタムタブはSSLサポートが必須条件になっています。

これは今年の10/1からの仕様みたいで、いろんな企業のFacebookページで以下のようなメッセージが表示されるようになりました。

これはユーザーがSSL接続した状態で、なおかつiframe内のコンテンツがSSLサポートされていないサーバーにある時に出ます。

わりと大手企業でも表示されるので今後順次対応されていくと思いますが、取り急ぎサポートされていないページを閲覧したい場合は、以下の手順で設定を変更。

Facebookの右上の

「アカウント設定」→「ホーム」→「セキュリティ」→「セキュアな接続」

で「セキュアな接続(https)を利用する(可能な場合)」のチェックを外して設定を保存。

自分で設定を変更した記憶がないのですが、もしかしたら忘れてるだけかも。。なのでメモとして。