2011-06-26 12 views
3

Facebookのファンページがあり、そのページを閲覧しているユーザーがコンテンツを表示するためにそのページに興味があるかどうかを確認します。それは、私が管理者としてログインしていたときに動作しますが、時に別のアカウントを訪問ページfacebook->getUser()は常に0facebook-> getUserは0を返します

require 'src/facebook.php'; 

$facebook = new Facebook(array(
    'appId' => 'ID', 
    'secret' => 'HASH', 
    'cookie' => true, 
)); 

$user = $facebook->getUser(); 

//Page id 

$page = '215010578537112'; 


$likeID = $facebook->api(array('method' => 'fql.query', 'query' => 
'SELECT uid FROM page_fan WHERE uid =' . $user . 'AND page_id =' .$page)); 

if ($likeID) { 

}else{ 

} 
+0

[Facebook開発ブログ]で提供されている例(https://developers.facebook.com/ blog/post/503 /)は 'new Facebook()'行にクッキーに関する行が含まれていないことを示しています。 –

+0

これはうまくいきませんでした –

+0

ちょっと、ちょっとアプリの秘密は***秘密***なのでしょうか?多分フォーラムに公表するのはいい考えではないでしょうか... –

答えて

0

を返し、これはファンページですので、あなたがFQL以来、FQLクエリを呼び出す必要はありませんクエリでは、ユーザーが最初にアプリケーションを承認している必要があります。 Facebookはiframeファンページにsigned_requestの投稿パラメータを送信します。そのsigned_requestパラメータをデコードし、ページのファンであるかどうかを確認する方法については、this answerを参照してください。

1

あなたは彼らがあなたのページが好きかどうかをチェックするために特別な何かを必要はありません、このバージョンをお試しください:

// find out if the user likes the page or not 
$signed_request = $_REQUEST["signed_request"]; 
list($encoded_sig, $payload) = explode('.', $signed_request, 2); 
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true); 

// content to show if they don't like the page 
if (empty($data["page"]["liked"])) { 
?> 
<p>Not a fan</p> 

<?php 
// content to show if they do like the page 
} else { 
<div>Is a fan</div> 
関連する問題