我終於得到了我的Facebook登錄的工作,這樣我就可以從用戶Facebook登錄不成立
<?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>
所有這些代碼檢索信息,會給我一個登錄,因爲我不是在登錄到APP(認證)。當我按下按鈕時,我可以看到我的信息,因爲我回應了它。
當我再按我的網頁上另一個按鈕。
<form action="<?php echo 'single_picture.php?argument=' . $picture_id ?>" method="post">
<input type="submit" name="submit" value="Vote!">
</form>
我再次打開相同的頁面,但登錄按鈕只是再次表明了,忘了所有關於我在我登錄
我想到的if/else被檢查,如果我在我登錄。
我也試着打印出我的訪問令牌
$access_token = $facebook->getAccessToken();
然後我把它分爲:http://developers.facebook.com/tools/debug
這是說的訪問令牌的有效期爲一個小時
我在做什麼錯?
嘿。謝謝你的答案。我一直在麻煩會議上班,但我會嘗試更多。許多用戶將同時使用該應用程序,所以我很難弄清楚如何使它與數據庫或txt一起工作。 – Pavenhimself
由於令牌的有效性無論如何都是1小時,因此會話應適合存儲令牌。調用'session_start();'在任何其他代碼之前調用'$ _SESSION ['token'] = $ facebook-> getAccessToken();'賦值。在做出fb請求之前,請檢查'$ _SESSION ['token']'是否包含一個值;如果是,請設置此值,否則您可以直接重定向到登錄頁面。 –
非常感謝!所有現在工作:) – Pavenhimself