我有一個測試Facebook登錄頁面example.com/login-fb
它應該處理基本的Facebook用戶登錄,未登錄和打印信息時可用。 登錄鏈接產生細小,如果我點擊它,它會細到Facebook和回報在同一個腳本以$ _GET parameeter - 我得到這樣的使用PHP SDK進行Facebook登錄,getUser()在回調中返回0
example.com/login-fb/?code=AQDgxX7dkmddbaWZbTCfLf063g0aNRuHJG71pTuCmsdXTlQX9JYe1wmPl94KcFG2BkPFjgkAZ8k0_gFcECUINJ59qbOVH9J5AKHVZP5mxQ7K25qPNQW2VHEbe80uhbrHD0QB9QeP8WSr8EdnM3ocadEVqrgXAXTRu2_Q8jBYZpBZp7MrZyg9K9BhCJEiC0xnp9a-mwyMoYtpZKxhjtEAiDwJvcZgUjftRKK-0091aECRozV5gdOSdPrqKBZhsmn5sHsjbOx1zB4z8gj2LGTxQzdaRez3Jxknn6A8wpZp70jilycIdfCBA8c_b35XOg93FTM&state=8e633d68644595d174ad01d0b7aed365#_=_
然而$ facebook->的getUser() ;始終爲0,因此它仍然顯示登錄鏈接而不是註銷鏈接和用戶信息。任何幫助?
的代碼:(使用Facebook的PHP SDK(v.3.2.3))
<?php
//Already REQUIRED: FB-SDK, MyFacebook class, home_url() and the_print_r()
$facebook = new MyFacebook();
$fb_params = array(
'scope' => 'email',
'redirect_uri' => home_url().'/login-fb'
);
$loginUrl = $facebook->getLoginUrl($fb_params);
$logoutUrl = $facebook->getLogoutUrl();
$user = $facebook->getUser();
?>
<?php the_print_r($user); ?>
<?php if ($user) { ?>
Your user profile is
<?php $user_profile = $facebook->api('/me'); ?>
<?php print htmlspecialchars(print_r($user_profile, true)) ?>
LOGOUT:<br><a href="<?php echo $logoutUrl; ?>"><?php echo $logoutUrl; ?></a>
<?php } else { ?>
LOGIN:<br><a href="<?php echo $loginUrl; ?>"><?php echo $loginUrl; ?></a>
<?php } ?>
解決:
最後,我想知道爲什麼是origanl的Facebook SDK的例子工作 - 我發現出 - 我的代碼很好! - 這只是網址處理問題 - login-fb /?代碼被誤解了,因此沒有$ _GET ['code']! - 只需使用擴展名 - login-fb.php來調用腳本 - 問題就解決了! ...
有人嗎?我願意提供更多信息infinity ne :)! –
對我來說看起來相當正確...你是否用簡單的捲曲來嘗試?它可能是getUser()函數。我忘記了PHP SDK庫中的那個函數。獲取代碼後,您可以打印訪問令牌,還是沒有那麼遠? – tattvamasi
這是一個愚蠢的網址重寫錯誤:x –