グラフ API でPages.isFanメソッドが機能しないのですが、グラフ API でページのユーザー ファンを確認する方法は何ですか?
ありがとう。
グラフ API でPages.isFanメソッドが機能しないのですが、グラフ API でページのユーザー ファンを確認する方法は何ですか?
ありがとう。
更新 2:
現在のユーザーがタブにランディングしたときに Facebook ページのファンであるかどうかを確認するには、この回答を確認してください。
更新:
接続を
使用してlikes
、ユーザーがページのファンであるかどうかを確認できます。
https://graph.facebook.com/me/likes/PAGE_ID
&access_token=ACCESS_TOKEN
これは、空のデータ配列のいずれかを返します。
Array
(
[data] => Array
(
)
)
またはファンの場合:
Array
(
[data] => Array
(
[0] => Array
(
[name] => Real Madrid C.F.
[category] => Professional sports team
[id] => 19034719952
[created_time] => 2011-05-03T20:53:26+0000
)
)
)
PHP-SDK を使用して確認する方法は次のとおりです。
<?php
require '../src/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'APP_ID',
'secret' => 'APP_SECRET',
));
$user = $facebook->getUser();
if ($user) {
try {
$likes = $facebook->api("/me/likes/PAGE_ID");
if( !empty($likes['data']) )
echo "I like!";
else
echo "not a fan!";
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'user_likes'
));
}
// rest of code here
?>
JS-SDK を使用した同様のスクリプト:
FB.api('/me/likes/PAGE_ID',function(response) {
if( response.data ) {
if( !isEmpty(response.data) )
alert('You are a fan!');
else
alert('Not a fan!');
} else {
alert('ERROR!');
}
});
// function to check for an empty object
function isEmpty(obj) {
for(var prop in obj) {
if(obj.hasOwnProperty(prop))
return false;
}
return true;
}
私のチュートリアルから取られたコード。
pages.isFan
私にとってはまだ機能していますが、新しい PHP-SDK で FQL テーブルを使用できますpage_fan
。
$result = $facebook->api(array(
"method" => "fql.query",
"query" => "SELECT uid FROM page_fan WHERE uid=$user_id AND page_id=$page_id"
));
if(!empty($result)) // array is not empty, so the user is a fan!
echo "$user_id is a fan!";
ドキュメントから:
page_fan テーブルを読み取るには、次のものが必要です。
- 公開されている場合は有効です
access_token
(Facebook のすべてのユーザーに表示されます)。user_likes
現在のユーザーを照会する場合のアクセス許可。friends_likes
ユーザーの友人を照会する場合の権限。
Facebook がすべてのタブ アプリ ページに送信する signed_request POST 変数に依存する別のアプローチを次に示します (「キャンバスの OAuth 2.0」詳細オプションがオンになっている場合)。
これの良いところは、別の fql.query を送信する必要がないことです。
または、たとえばファンである場合や動的なものを作成した場合にコンテンツを表示したい場合は、fbml を使用できます。
例:
<fb:fbml version="1.1">
<fb:visible-to-connection>This part is visible for fans only!
<fb:else>This part is visible for non-fans</fb:else>
</fb:visible-to-connection>
</fb:fbml>