【发布时间】:2013-12-22 11:00:45
【问题描述】:
我有一个小的 Facebook 应用程序,它的开头有一个“点赞门”。用户必须喜欢该页面才能使用该应用程序。应用程序本身有一些子页面,所以如果我想让子页面工作,我必须将签名的请求存储到 $_SESSION 变量中。我的问题是签名请求仅在应用加载时发送,此时用户尚未喜欢该页面。所以如果这次保存了签名的请求,$signed_request["page"]["liked"] 将总是返回 FALSE... 如何重新加载签名的请求?
FQL 和 $like_data = $facebook->api('/me/likes/PAGE-ID/');不好,因为我想要页面之后的权限对话框。
这是现在的代码:
$page_id = $signed_request["page"]["id"];
$like_status = $signed_request["page"]["liked"];
if(!$like_status){
header("Location: notfan.php");
exit;
}else{
if (!isset($_SESSION["SR"]))
{
$_SESSION["SR"] = $_REQUEST["signed_request"];
}else{
$encoded_sig = null;
$payload = null;
list($encoded_sig, $payload) = explode('.', $_SESSION["SR"], 2);
$sig = base64_decode(strtr($encoded_sig, '-_', '+/'));
$signed_request = $data = json_decode(base64_decode(strtr($payload, '-_', '+/'), true));
$signed_request = objectToArray($signed_request);
}
}
非常感谢!
【问题讨论】:
标签: php facebook facebook-graph-api facebook-php-sdk