Php facebook登录不';托住
我终于可以登录facebook了,这样我就可以从用户那里检索信息了Php facebook登录不';托住,php,facebook-php-sdk,facebook-login,Php,Facebook Php Sdk,Facebook Login,我终于可以登录facebook了,这样我就可以从用户那里检索信息了 <?php session_start(); require_once 'facebook.php'; $facebook = new Facebook(array( 'appId' => '19582352346693', 'secret' => '44c21dde8d502ega23g287a751dea', 'cookie' =
<?php
session_start();
require_once 'facebook.php';
$facebook = new Facebook(array(
'appId' => '19582352346693',
'secret' => '44c21dde8d502ega23g287a751dea',
'cookie' => true,
));
$user_id = $facebook->getUser();
?>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>Picture</title>
</head>
<body>
<?php
if($user_id) {
// We have a user ID, so probably a logged in user.
// If not, we'll get an exception, which we handle below.
try {
$test = null;
$user_profile = $facebook->api('/me','GET');
//$test = $user_profile['id'];
echo "id: " . $user_profile['id'];
} catch(FacebookApiException $e) {
// If the user is logged out, you can have a
// user ID even though the access token is invalid.
// In this case, we'll get an exception, so we'll
// just ask the user to login again here.
$login_url = $facebook->getLoginUrl();
echo 'Please <a href="' . $login_url . '">login.</a>';
error_log($e->getType());
error_log($e->getMessage());
}
} else {
// No user, print a link for the user to login
$login_url = $facebook->getLoginUrl();
echo 'Please <a href="' . $login_url . '">login.</a>';
}
?>
</div>
</body>
</html>
然后我把它放进:
这表示访问令牌在一小时内有效
我做错了什么?首先,你的语法太混乱了。 我想你忘了用sesion\u start了
<?php session_start() ?>
或者检查cookies。您将希望将从facebook获得的访问令牌存储到某个地方。无论是会话、数据库表还是简单的文本文件。在neyt请求之前,您设置此令牌(
$facebook->setAccessToken(
),只要它仍然有效。我知道这不是您想要的,您给了我您的问题,我给了您不同的答案,但请将此作为一个建议。使用Facebook登录时,我要做的是创建自己的登录系统,对于Facebook用户,我有另一个存储用户Facebook id的表,然后我只使用Facebook API检查数据库中的信息是否有效。如果是,则我将用户登录。如果不是,我会将它们发送到错误页面或注册页面。嘿,谢谢。我已经有了,但是谢谢你指出:)嘿。谢谢你的回答。我一直很难让会话正常工作,但我会尝试更多。许多用户将同时使用该应用程序,因此我很难弄清楚如何使其与数据库或txt一起工作。由于令牌的有效期为1小时,会话应该适合存储令牌。调用session_start()代码>在任何其他代码之前,并使用$\u SESSION['token']=$facebook->getAccessToken()赋值代码>。在发出fb请求之前,检查$\u会话['token']
是否包含值;如果是,请设置此值,否则您可以直接重定向到登录页面。
$access_token = $facebook->getAccessToken();
<?php session_start() ?>