2014-10-23 4 views
0

FQL이 더 이상 사용되지 않으므로 유효한 앨범 ID가 없어 앨범이 이미 존재하는지 확인하는 효율적인 방법이 있습니까? 나는 this 지위를 읽었지 만 최상위 정답은 FQL을 사용합니다. 모든 앨범을 검색하지 않고 결과로 나온 각 앨범 이름을 해당 이름과 비교할 필요가 없기를 바랍니다.FQL없이 페이스 북 앨범이 이미 존재하는지 확인하는 방법

모든 앨범을 검색하고 결과를 비교해야하는 경우 공유 할 수있는 편리한 자바 스크립트 스 니펫이 있습니까?

+0

P.S. 이름으로 검색 할 수있는 FB 그래프 URL을 구성하는 여러 가지 방법을 시도했지만 행운은 없습니다. 예를 들면 다음과 같습니다. https://graph.facebook.com/v2.1/me/albums?name="MyAlbum"&access_token=

+0

API는 해당 필드가 색인되지 않기 때문에 앨범 이름으로 검색 할 수 없습니다. – Lix

+0

그래서 서비스 응답이 JSON 형식이므로 변수를 선언하고 결과를 처리하는 방법을보다 정확하게 설명해야한다고 생각합니다. 또는 서비스 호출이 비동기식이어서 완료하기 전에 결과를 구문 분석하려고 할 수 있습니다. –

답변

1

앨범 이름을 쿼리 할 수 ​​없으면 전체 목록을 요청하고 결과에서 원하는 앨범을 "수동으로 검색"해야합니다.

당신은 현재 사용자의 모든 앨범을 가져 오기 위해이 엔드 포인트를 사용할 수 있습니다

:

me/albums?fields=name 

이 다음과 같은 형식으로 결과를 반환합니다 :

{ 
    "data": [ 
    { 
     "name": "Profile Pictures", 
     "id": "XXXX", 
     "created_time": "2010-08-24T07:44:36+0000" 
    }, 
    { 
     "name": "Cover Photos", 
     "id": "YYYY", 
     "created_time": "2011-09-22T22:58:07+0000" 
    }, 
    ... 
    ] 
} 

그런 다음 원하는 앨범을 찾습니다 (my_album), 다음과 유사한 코드를 사용하십시오.

results = get_albums(); // making the actual API call 
found_album = false; 
for (var i = 0; i < results.data.length; i++){ 
    if (results.data[ i ][ "name" ] == "my_album"){ 
    found_album = true; 
    break; // no need to continue searching 
    } 
} 
+0

Thx Lix! 내 코드는 결과를 저장하려고하는 시점에서 실패하고 있습니다. 나는 바보 같다고 확신하지만이 줄은 실패하고있다. var results = servicename.execute(); –

+0

감사합니다. 나는 PHP 코드를 원했고 이것은 PHP 코드로 작업하고있다. $ album = $ facebook-> api ('/ ALBUM_ID/photos'); 앨범에 사진이 두 장 있으면 올바르게 작동합니다. 2 장의 사진이있는 경우 반환되지 않습니다. 다시 한번 감사드립니다. 투표! –

0

ew!

이것은 Lix의 미리보기로 약간 놀아낸 것입니다. 모델 및 로컬 변수를 사용하여 서비스 응답을 처리하는 것보다이 작업을 수행하는보다 효율적인 방법이 있는지 알고 싶습니다.

Appery.io 모델 :

fbAlbumList [Array] 
    fbAlbumList[i] [Object] 
      name [String] 
      id [String] 

Appery.io 로컬 변수

fbAlbums - Local Storage - Type fbAlbumList 

JS

var found_album = false; 
var results = []; 

results = JSON.parse(localStorage.getItem('fbAlbums')); // fbAlbums is a model/local variable 
for (var i = 0; i < results.length-1; i++) { 
    if (results[i].name == <comparison name>) { 
     found_album = true; 
     break; // no need to continue searching 
    } 
} 
관련 문제