我创建了一个 facebook 应用程序,如果新用户使用直接服务器链接 ( https://www.mydomain.com/app/index.php ) 启动应用程序并使用登录按钮,它适用于新用户。
但是,如果他们尝试将 facebook ( https://apps.facebook.com/myapp ) 中的应用程序用作画布应用程序(第一次),那么他们会看到我的应用程序的“登陆”页面和登录按钮。但是如果他们点击它,就会出现一条错误消息,即无法显示 iframe 的内容。如果他们在新选项卡中启动应用程序,则登录过程有效。(请参阅下面的错误,抱歉它是德语,也许您熟悉这种类型的错误消息?)
如果新用户可以使用画布应用程序中的登录链接,那将是可取的。
如何做到这一点?我的 index.php 看起来像这样:(我正在使用 facebook SDK)
<?php
require_once('php-sdk/facebook.php');
$config = array(
'appId' => 'YOUR_APP_ID',
'secret' => 'YOUR_APP_SECRET',
);
$facebook = new Facebook($config);
$user_id = $facebook->getUser();
?>
<html>
<head></head>
<body>
<?php
if($user_id) {
try {
$user_profile = $facebook->api('/me','GET');
echo "Name: " . $user_profile['name'];
} catch(FacebookApiException $e) {
$login_url = $facebook->getLoginUrl();
echo 'Please <a href="' . $login_url . '">login.</a>';
error_log($e->getType());
error_log($e->getMessage());
}
} else {
$login_url = $facebook->getLoginUrl();
echo 'Please <a href="' . $login_url . '">login.</a>';
}
?>
</body>
</html>