jor*_*ens 5 facebook fbml fbjs facebook-graph-api
有没有办法确定Facebook用户是否"喜欢"Facebook目前提供的API?
我一直试图通过这个代码通过PHP图形API使用一段时间.
$fbconfig['appid'] = '***';
$fbconfig['api'] = '***';
$fbconfig['secret'] = '***';
try {
include_once "facebook.php";
} catch(Exception $o) {
echo '<pre>';
print_r($o);
echo '</pre>';
}
$facebook = new Facebook(array(
'appId' => $fbconfig['appid'],
'secret' => $fbconfig['secret'],
'cookie' => true,
));
$session = $facebook->getSession();
$me = null;
if ($session) {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
d($e);
}
}
if($me) {
try {
$likes = $facebook->api('/me/likes');
} catch(Exception $o) {
d($o);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,即使我已登录,会话也始终为null.
显然,上面的代码仅适用于Facebook Connect"Canvas"应用程序,我通过对我的服务器的AJAX调用从Facebook"页面"上的FBML选项卡调用此代码.
我对所有Facebook开发术语都不是很熟悉.
如何在我的情况下获得当前用户的"喜欢"?
小智 11
没有请求权限且不使用任何类型的API,有一种方法可以做到这一点.
如果你有PHP:
<?php
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
$app_data = isset($data["app_data"]) ? $data["app_data"] : '';
$_REQUEST["fb_page_id"] = $data["page"]["id"];
$access_admin = $data["page"]["admin"] == 1;
$has_liked = $data["page"]["liked"] == 1;
?>
Run Code Online (Sandbox Code Playgroud)
您可以使用$ has_liked来包装特定于粉丝的内容
<?php if($has_liked) : ?>
fan-specifc
<?php else : ?>
for non-fans only
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)
取代
<fb:visible-to-connection>
fan-specific content
<fb:else>
for non-fans only
</fb:else>
</fb:visible-to-connection>
Run Code Online (Sandbox Code Playgroud)
这是非常有用和方便的,因为要求许可是一个关闭.
| 归档时间: |
|
| 查看次数: |
17438 次 |
| 最近记录: |