我创建了一个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>