2014-10-31 59 views
0

我正在通過php sdk 4版本開發一個facebook應用程序。
我的代碼如下:facebook php sdk 4版本,無法獲取用戶相冊

try { 
    $session = $helper->getSession(); 
} catch (FacebookRequestException $ex) { 
    echo $ex->getMessage(); 
} catch (\Exception $ex) { 
echo $ex->getMessage(); 
} 
if ($session) { 
    try { 
     $request = new FacebookRequest($session, 'GET', '/me'); 
     $response = $request->execute(); 
     $me = $response->getGraphObject(); 
     $user_id = $me->getProperty('id'); 
     echo $user_id; 
     $accessToken = $session->getAccessToken(); 
     echo $accessToken; 
     echo "<br>".$user_id; 
     $request = new FacebookRequest($session, 'GET', '/me/albums'); 
     $response = $request->execute(); 
     $userAlbums = $response->getGraphObject(); 
     echo $userAlbums['data'][0]['id']; 


    } catch(FacebookRequestException $e) { 
     echo $e->getMessage(); 
    } 
} else { 
    $helper = new FacebookRedirectLoginHelper('https://apps.facebook.com/lykebook/'); 
$auth_url = $helper->getLoginUrl(array('user_friends', 'publish_actions', 'user_photos', 'user_status', 'friends_photos','friends_status','publish_stream')); 
echo "<script>window.top.location.href='".$auth_url."'</script>"; 
} 


但問題是,我沒有得到任何唱片數據。我不知道問題是什麼?先前的請求即:/我正在正常工作。我通過打印$ user_id來檢查。但是下一張獲取專輯的請求並不適用於我/專輯。幫助我糾正這一點。

+0

我用回聲 「

"; var_dump($userAlbums); echo "
」 使用調試;並發現所有數據顯示,我正在從Facebook獲取所有相冊的json數據,但無法用php sdk解析4.如何做到這一點。 – 2014-10-31 14:27:52

回答

1

嘗試使用getGraphObjectList()方法,因爲您期望有多個對象。然後結果將是一組GraphObject對象,see here

從這裏開始,您需要使用輔助方法(例如getProperty())將這些對象作爲對象訪問而不是數組。您可以用asArray()檢索支持此對象的數組。

+0

感謝您的解釋! – 2014-11-01 10:02:38

+0

現在我收到以下錯誤:我已在新問題中發佈瞭如何更正該錯誤:[link] http://stackoverflow.com/questions/26688580/some-of-the-aliases-you-requested-do -not並存-A-數據-ID – 2014-11-01 10:57:27

0

你可以使用getGraphEdge,這裏代碼如下:

$fb->setDefaultAccessToken($accessToken); 

    try { 

     $response = $fb->get('/me/albums'); 
     $albums = $response->getGraphEdge(); 

    } catch(Facebook\Exceptions\FacebookResponseException $e) { 
     // When Graph returns an error 
     echo 'Graph returned an error: ' . $e->getMessage(); 
     exit; 

    } catch(Facebook\Exceptions\FacebookSDKException $e) { 
     // When validation fails or other local issues 
     echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
     exit; 
    } 

    foreach ($albums as &$value) { 
      echo $value; 
    } 
相關問題