我在开发阶段有一个Facebook PHP SDK APP,我被困在某事上...... APP的逻辑是这样的:
首先,用户必须喜欢该页面(应用程序在此)//非常好用:) 之后是权限请求 如果授予权限:app_data变量通过,用户收到图片。
app_data变量是必要的,因为如果用户在再次授予权限后单击该应用程序,则会自动获取新图片。使用app_data不。
我的问题是这个链接:
$params = array(
scope => 'publish_stream,user_photos',
redirect_uri => 'http://www.facebook.com/XXXXX?sk=app_YYYYYY&app_data=1'
);
<a href="<?php echo $facebook->getLoginUrl($params); ?>">Accept</a>
如果我点击它,该应用程序显示空白页面,没有任何事情...... :( 在直接调用时,该应用程序运行时没有任何错误。
有人能帮助我吗?
对不起我的英文......
谢谢!
并且整个index.php是:
这是整个index.php:
<?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>
<style>
a:link {color:#ffffff;}
a:visited {color:#ffffff;}
a:hover {color:#ececec;}
a:active {color:#1f1f1f;}
a:link {text-decoration: none}
</style>
</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)) {
$file = "1.jpg";
$message = 'bla bla';
$ret_obj = $facebook->api('/me/photos', 'POST', array(
'source' => '@' . $file,
'message' => $message,
)
);
echo "<img width=\"520px\" src=\"1.jpg\" />";
} else {
?>
<a href="<?php echo $facebook->getLoginUrl($params); ?>">accept</a></td>
<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>
答案 0 :(得分:0)
在我钻研Facebook应用程序的世界之前,我已经有了这个。
我最终做的是redirect_uri
我在我的网域上使用了一个页面,例如https://domain.com/facebook/redirect.php
和redirect.php我会:
// user didn't give app permissions
if (isset($_GET['error_reason']))
{
header( 'Location: http://www.facebook.com/FANPAGE' ) ;
}
else
{
header( 'Location: http://www.facebook.com/XXXXX?sk=app_YYYYYY' ) ;
}