2010-04-20 11 views
0

iFrame 모드에서 실행되는 PHP 애플리케이션이 있습니다. <fb:serverfbml> 태그 안에 <fb:multi-friend-selector condensed="true">을 렌더링했습니다. 이 코드는 $facebook->api_client->friends_get();을 사용하여 사용자 ID 목록을 가져 오는 함수를 호출하는 PHP 파일 안에 있습니다. 다중 친구 선택기는 잘 렌더링되지만, friend_get() 호출을 주석 처리하지 않은 채로두면 페이지가로드되는 데 15-20 초가 걸립니다 (방화 광로 확인 됨)! 목표는 친구 선택기의 exclude_ids 매개 변수에서 사용하기 위해 표시하지 않을 사용자 ID 목록을 작성하여 선택 도구에 표시되는 사용자 수를 제한하는 것입니다. 그리고 그것은 "exclude_ids"가 아니고 "include_ids"가 아니기 때문에이 API 호출을 해결할 방법을 생각할 수 없습니다. 친구 선택기가 훨씬 빨리로드되는 것을 보았 기 때문에 API 호출을 빠르게 수행 할 수있는 방법이 있어야합니다.Facebook API friends_get의 속도가 매우 느림

답변

1

이 문제에 대해 내 머리카락을 찢어 버린 지 한 달이 지나면 상당히 적절한 해결 방법을 발견했습니다. PHP API 호출은 매우 천천히 당신이 어떤 AJAX 요청에서 작동합니다. 이것은 페이 스북 매개 변수가 누락 된 것과 관련이 있거나 다른 말도 안되는 것들과 관련이 있습니다.

해결 방법은 AJAX를 통해 호출되는 PHP 파일에서 Facebook API 함수를 호출하는 대신 Facebook API에 대한 모든 PHP 호출을 앱로드시로드 된 인덱스 파일로 분리해야합니다. 반환 된 값을 세션 변수에 저장하면 이후의 AJAX 호출에서이 값을로드 할 수 있습니다.