0

私がやりたいことは、ユーザーが最初に私のページを気に入らなければならず、それから私facebook apps.var_dump

ここに私のコードがあります

$request = $_REQUEST["signed_request"];
list($encoded_sig, $load) = explode('.', $request, 2);
$fbData = json_decode(base64_decode(strtr($load, '-_', '+/')), true);

var_dump($fbData["page"]["liked"]);// output is NULL

if (!empty($fbData["page"]["liked"]))
{ 
  echo "This content is for Fans only!";
} else {
  echo "Please click on the Like button to view this tab!";
}

それを行う方法はありますか?

4

2 に答える 2

0

signed_requestパラメーターとして存在すること確認しましたか?

ページが最初にFacebookiframeに読み込まれると、アプリに送信されます。アプリ内を移動し始めると、アプリには送信されなくなります。

IMHOを実行する最善の方法は、signed_requestが空でない場合は解析し、結果を自分のセッションに安全に保管することです。

ところで、自分で解析するのはかなり時間がかかります– PHP SDKを使用し、Facebook :: getSignedRequest()を使用することをお勧めします– signd_requestパラメーターがある場合、このメソッドはすべてのデータをデコードされた形式で提供します。

だから私が通常することは次のとおりです。

if($signed_request_data = $Facebook->getSignedRequest()) {
  $_SESSION['signed_request_data'] = $signed_request_data;
}

すべてのページでそのコードを呼び出すことができます。メソッドが実際にデータを返す場合にのみ、セッションが更新されます。

于 2012-06-04T09:02:51.950 に答える
0

Facebook アプリuser_likesが気に入ったかどうかを確認する権限が必要ですが、$fbData["page"]["liked"] は別のFacebook アプリ ページを参照しています。

アプリ ページを編集するには、[アプリの設定] > [詳細設定] に移動し、下部に [アプリ ページ] が表示されます

アクセス許可 user_likes を使用して確認するには、このSO Answer On Detecting if a User Likes a Facebook Appを参照してください

于 2012-06-04T08:53:32.007 に答える