Facebook PHP SDK和标签页 - 登录和signed_request

时间:2013-04-14 09:12:46

标签: php facebook login sdk

我正在制作一个Facebook应用程序用于标签页,应用程序的重点是人们上传图片并分享它,以便其他人可以看到并投票。所以我知道我必须使用app_data将用户重定向到特定图片,但我无法处理它。我尝试使用$facebook->getSigned_request$_REQUEST,但没有一个返回app_data值。我也使用PHP SDK示例文件进行登录,但是当我从标签页中尝试它时,没有任何异常。您能告诉我如何从标签页登录并获得app_data值吗?

1 个答案:

答案 0 :(得分:2)

所以,从一开始。首先,当用户访问您的网页时,您必须检查该用户是否已授予您的应用权限。

$facebook = new Facebook(array(
    'appId' => YOUR_APP_ID,
    'secret' => YOUR_SECRET
));

if($facebook->getUser()) {
    //Here will be code to get app_data
} else {
    $params = array(); //Here you will enter key=>value pairs of permissions you need
    echo '<script>top.location.href="' . $facebook->getLoginUrl($params) . '"</script>';
    //Code above redirects user to page that will ask for permissions for your app.
}

上面的代码将是用户登录和权限。现在,为了获得app_data,你必须这样做:

$signed_request = $facebook->getSignedRequest(); //getting signed_request
$app_data = $signed_request['app_data']; // getting app_data

现在,为了获取app_data,您需要确保将其传递到URL(GET)中的选项卡。像这样

PATH_TO_YOUR_FB_PAGE/?app_data=SOME_VALUE

或如果您的网页以?sk=app_PAGE_ID结尾,只需添加&app_data=SOME_VALUE

即可