2013-12-18 143 views
0

我有一個測試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來調用腳本 - 問題就解決了! ...

+0

有人嗎?我願意提供更多信息infinity ne :)! –

+0

對我來說看起來相當正確...你是否用簡單的捲曲來嘗試?它可能是getUser()函數。我忘記了PHP SDK庫中的那個函數。獲取代碼後,您可以打印訪問令牌,還是沒有那麼遠? – tattvamasi

+0

這是一個愚蠢的網址重寫錯誤:x –

回答

2

我曾經遇到過這個問題,並且爲了一天的工作而頭痛。最後,在寫這篇文章時,通過使用當前的sdk v 3.2.3更新lib/facebook目錄解決了這個問題。

相關問題