我使用以下代码生成Facebook登录链接:
<?php
try {
include_once 'facebook_sdk_libs/facebook.php';
} catch(Exception $o){
echo '<pre>';
print_r($o);
echo '</pre>';
}
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => APPID,
'secret' => APPSECRET,
'cookie' => true,
));
$session = $facebook->getSession();
function d($d){
echo '<pre>';
print_r($d);
echo '</pre>';
}
$fbme = null;
// Session based graph API call.
if ($session) {
try {
$uid = $facebook->getUser();
$fbme = $facebook->api('/me');
} catch (FacebookApiException $e) {
// d($e);
}
}
if($fbme){
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl(
array('scope' => 'publish_stream')
);
}
显示Facebook显示“转到应用程序”和“取消”的屏幕。当我点击“转到应用程序”时,它会返回到我的页面,但不会在Facebook墙上发布我想要的内容。
我需要更改此代码才能让Facebook询问并获得“Post on Wall”的许可?
答案 0 :(得分:1)
感谢您的参与,我已经注意到您关于access_token的线索并发现此代码正常工作,我只是将getlogin代码替换为此
$loginUrl = $facebook->getLoginUrl(array(
'canvas' => 1,
'fbconnect' => 0,
'req_perms' => 'email,publish_stream,status_update,user_birthday,user_location,user_work_history'));
它首先验证我的应用程序然后在下一步它要求post wall权限。所以它只需一步即可完成,
非常感谢答案 1 :(得分:0)
您正在进行的操作只会让用户验证您的应用,并且Facebook会返回给您。这不会导致Facebook发布到用户的墙上。如果您希望这样做,有两种选择: