2014-10-31 120 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; 
    } 
相关问题