Sim*_*sen 9 javascript php facebook
是否可以通过Javascript或PHP检查用户是否已经从我的网站上喜欢我的脸书粉丝页?
编辑:我需要一个解决方案,因此用户不需要首先验证/允许一些持久性
Mig*_*uña 13
<?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();
$page_id = "123456789";
$page_name = $facebook->api("/".$page_id)['name'];
$page_link = $facebook->api("/".$page_id)['link'];
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
?>
Run Code Online (Sandbox Code Playgroud)
Mat*_* G. 12
最简单的方法是调用Graph API来获取/me/likes连接(注意你必须要求user_likes权限).然后浏览每个并id与您的页面ID 进行比较.
假设您正在使用官方的Facebook PHP SDK,并Facebook设置了对象的实例(请参阅上述页面中的使用部分),可以使用以下代码来确定用户是否是Daft Punk的粉丝:
$our_page_id = '22476490672'; // This should be string
$user_is_fan = false;
$likes = $facebook->api( '/me/likes?fields=id' );
foreach( $likes['data'] as $page ) {
if( $page['id'] === $our_page_id ) {
$user_is_fan = true;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,您可以进一步使用$user_is_fan变量.
在JavaScript中,代码非常相似.使用官方JavaScript SDK的方法FB.api(再次假设您已经采用了身份验证):
FB.api('/me/likes?fields=id', function(response) {
var our_page_id = '22476490672';
var user_is_fan = false;
var likes_count = response.data.length;
for(i = 0; i < likes_count; i++) {
if(response.data[i].id === our_page_id) {
user_is_fan = true;
break;
}
}
});
Run Code Online (Sandbox Code Playgroud)
请注意,这里我们使用异步请求和回调,因此使用user_is_fan变量的代码必须在函数内部.