如何让Facebook应用程序登录正常工作

如何让Facebook应用程序登录正常工作,facebook,api,login,Facebook,Api,Login,我刚开始为Facebook做一个应用程序,但我很早就遇到了问题。我希望人们做的第一步是授予访问其个人资料的权限。网络上到处都有这样的例子: $user_id = $facebook->require_login(); 然而,这是它使用旧的PHPAPI的工作方式。我已经在我的应用程序文件夹中下载并安装了新的,它不再工作了 我的问题是(我真的一直在寻找答案)新API的代码是什么 (以及相关问题:当我现在刚刚开始制作应用程序时,使用旧API还是学习使用新API更好) 我现在有这个密码

我刚开始为Facebook做一个应用程序,但我很早就遇到了问题。我希望人们做的第一步是授予访问其个人资料的权限。网络上到处都有这样的例子:

$user_id = $facebook->require_login();
然而,这是它使用旧的PHPAPI的工作方式。我已经在我的应用程序文件夹中下载并安装了新的,它不再工作了

我的问题是(我真的一直在寻找答案)新API的代码是什么

(以及相关问题:当我现在刚刚开始制作应用程序时,使用旧API还是学习使用新API更好)

我现在有这个密码

    <?php
        // Awesome Facebook Application
        //
        // Name: -
        //

        require_once 'facebook-php-sdk/src/facebook.php';
        $app_id = "-";
$app_secret = "-";

        // Create our Application instance.
$facebook = new Facebook(array(
        'appId' => $app_id,
        'secret' => $app_secret,
        'cookie' => true
));

$session = $facebook->getSession();
$loginUrl = $facebook->getLoginUrl(
        array(
        'canvas'    => 1,
        'fbconnect' => 0,
        'req_perms' => 'email,publish_stream,status_update,user_birthday, user_location,user_work_history'
        )
);

$fbme = null;

if (!$session) {
    echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
    exit;
}
else {
    try {
        $uid      =   $facebook->getUser();
        $fbme     =   $facebook->api('/me');

    } catch (FacebookApiException $e) {
        echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
        exit;
    }
}


echo "<p>hello, <fb:name uid=\"$user_id\" useyou=\"false\" />!</p>";


?>
并使用来自github的新代码

如何获得用户权限

$loginUrl = $facebook->getLoginUrl(array(
    'req_perms' => 'email,user_birthday,publish_stream,sms,status_update,user_location'
));


如何登录

更新


$session=$facebook->getSession();
$loginUrl=$facebook->getLoginUrl(
排列(
“画布”=>1,
“fbconnect”=>0,
'req\u perms'=>'电子邮件、发布流、状态更新、用户生日、用户位置、用户工作历史'
)
);
$fbme=null;
如果(!$session){
echo“top.location.href='$loginUrl';”;
出口
}
否则{
试一试{
$uid=$facebook->getUser();
$fbme=$facebook->api('/me');
}捕获(FacebookApiException$e){
echo“top.location.href='$loginUrl';”;
出口
}
}

感谢您的回复!但是,我想使用第一种方法,因此不需要按钮。然而,当我像我一样(请在我的第一个问题中查看更新的代码)使用iframe、canvas、fmbl等制作应用程序时,它不起作用。好吧,现在当我作为iframe运行它时,它起作用了,谢谢!关于如何使用(例如打印)我现在可以访问的数据的更多提示?例如获取全名
$fbme['name']
了解更多详细信息
打印($fbme)
<fb:login-button perms="email,user_birthday,publish_stream,sms,status_update,user_location"></fb:login-button>
$session = $facebook->getSession();
$loginUrl = $facebook->getLoginUrl(
        array(
        'canvas'    => 1,
        'fbconnect' => 0,
        'req_perms' => 'email,publish_stream,status_update,user_birthday, user_location,user_work_history'
        )
);

$fbme = null;

if (!$session) {
    echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
    exit;
}
else {
    try {
        $uid      =   $facebook->getUser();
        $fbme     =   $facebook->api('/me');

    } catch (FacebookApiException $e) {
        echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
        exit;
    }
}