2012-07-04 3 views
0

페이스 북 앱을 만들고 있는데 표지 이미지로 사용자 앨범을 표시하고 싶습니다. 코드 # 1로 시도했지만 페이스 북을 만들 때 정말 느립니다. api 호출 내 응용 프로그램을 영원히 걸릴 수 있도록, 그래서 한 번만 API를 호출하고 모든 정보를 얻을 수있는 다른 방법을 찾고 그래서 FQL 다중 쿼리 (코드 # 2) 시도했지만 지금은 문제가 왜냐하면 앨범에 이미지가 없다면 아무 것도 반환하지 않을 것이기 때문에 내 코드를 확인해주십시오. 어떻게 할 수 있는지 알고 있다면 미리 감사드립니다.사용자의 이미지로 페이스 북 앨범을 얻을 수있는 방법

code#1 
$albums = $facebook->api('/me/albums?limit=0&fields=id,name,count,cover_photo'); 
foreach($albums['data'] as $album) 
       { 
       // get all photos for album 
       $photos = $facebook->api("/{$album['id']}/?fields=picture,name,count"); 
       $foto = $photos['picture']; 
       $nombre = $album['name']; 

       $id = $album['id']; 
       $count = $album['count']; 
       $cover_photo = $album['cover_photo']; 
       $nombre = $nombre." (".$count.")"; 


       echo "<li> <a href=\"album.php?numero_album=$id&nombre_album=$nombre \" title=\"$nombre\"><img src=\"https://graph.facebook.com/{$cover_photo}/\" alt=\"$nombre\" /> </a> </li>"; 
       } 


code#2 
$multiQuery = '{ 
    "albumes":"SELECT name,cover_pid,object_id,size FROM album WHERE owner=me()", 
    "portadas":"SELECT src_big FROM photo WHERE pid IN (SELECT cover_pid FROM #albumes)" 
     }'; 

     $param = array(  
    'method' => 'fql.multiquery',  
    'queries' => $multiQuery,  
    'callback' => '');  
     $queryresults = $facebook->api($param); 

       foreach($queryresults[0]['fql_result_set'] as $album) 
       { 
       $nombre = $album['name']; 
       $id = $album['object_id']; 
       $count = $album['size']; 
       $nombre = $nombre." (".$count.")"; 


       echo "<li> <a href=\"album.php?numero_album=$id&nombre_album=$nombre \" title=\"$nombre\"><img src=\"https://graph.facebook.com/{$cover_photo}/\" alt=\"$nombre\" /> </a> </li>"; 
       } 

답변

0

그래서 내가 앨범에 이미지가없는 경우 (2 코드 번호)하지만 지금은 문제가 있다면이 이뤄져 아무것도 반환하지 않기 때문에 FQL 멀티 쿼리를 시도

가 없습니다 정말 거기에 당신의 문제를 참조하십시오. 그래프 API 탐색기를 사용하여 쿼리를 시도하면 내 모든 앨범과 각 앨범에 대한 표지 사진이 제공됩니다. (앨범 4 장, 사진 3 장입니다.)

어떤 앨범의 사진인지 알 수없는 경우 두 검색어에 aid 필드 만 포함하면됩니다.

내가 각각의 API 호출이 다른 HTTP 요청을 의미하기 때문에 내 응용 프로그램, 그것은 않습니다 물론 영원히

취하게 foreach 문에서 페이스 북의 API 호출을대로 정말 천천히, 그이 느림.

FQL 방법으로 원하는 것을 얻지 못하면 batch requests에 API 요청을 만들어 HTTP 요청 수를 줄이면 처리 속도가 빨라집니다.

+0

답장을 보내 주셔서 감사합니다. 하지만 앨범의 이름으로 각 앨범의 이미지를 어떻게 표시 할 수 있습니까? 미안하지만 이것이 정말 바보 같은 질문인데 Facebook API @CBroe를 배우고 있습니다. –

관련 문제