Facebook的PHP SDK:请求链接权限,而不是重定向
问题描述:
我想改变我的代码,所以首先它会检查用户是否喜欢这个页面。在此之后(如果是的话)会出现一个问题,接受条款,如果他点击接受按钮,Facebook权限请求对话框将会出现。我怎样才能做到这一点?Facebook的PHP SDK:请求链接权限,而不是重定向
的问题是,每次在应用用户点击链接$ USER变量始终是假的,但他被记录在...
<?php
require 'facebook.php';
$facebook = new Facebook(array(
'appId' => 'xxxxx',
'secret' => 'yyyyy',
'baseUrl' => 'http://hosting.address/',
'appBaseUrl' => 'http://apps.facebook.com/app-name/',
'fileUpload' => 'true',
));
// Get User ID
$user = $facebook->getUser();
$params = array(
scope => 'publish_stream,user_photos',
redirect_uri => 'http://www.facebook.com/xxxxx?sk=app_yyyyy&app_data=1'
);
$signed_request = $facebook->getSignedRequest();
$app_data = $signed_request["app_data"];
?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>the title</title>
</head>
<body>
<?php if ($user){
try {
$user_profile = $facebook->api('/me');
$likes = $facebook->api("/me/likes/123123123"); //page ID
if(!empty($likes['data'])){
$scope = 'publish_stream,user_photos';
$scope_params = explode(',',$scope);
$permissions = $facebook->api("/me/permissions");
if(array_key_exists('publish_stream', $permissions['data'][0]) && array_key_exists('user_photos', $permissions['data'][0]) && isset($app_data)) {
} else {
echo "<a href=\"/redirect.php\">accept</a></td>";
echo "<a href=\"http://www.facebook.com/pageurl\">deny</a></td>";
}
}else{
echo "<img width=\"520px\" src=\"no-fan.jpg\" />";
}
} catch (FacebookApiException $e) {
echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>';
$user = null;
}
}
if ($user) {
} else {
$loginUrl = $facebook->getLoginUrl($params);
echo '<script type="text/javascript">top.location.href = "'.$loginUrl .'";</script>';
}
?>
</body>
</html>
答
试试下面这个很好的例子:
http://www.jelecos.com/default/blog/11-04-18/Facebook_PHP_SDK_Fangate_Creation.aspx
然后在fanpage.php上有你的代码请求他们登录。
非常感谢:) – VORiAND 2012-01-16 18:53:28