2013-08-03 1 views
-1

소셜 네트워킹 웹 사이트에서 작업하고 있습니다. 페이스 북을 통해 로그인하는 옵션이 있습니다. 사용자가 "Facebook으로 로그인"을 클릭 할 때. 그의 연락처 등을 데이터베이스로 가져오고 있습니다. 데이터를 가져 오기 위해 세 가지 다른 FQL 쿼리를 사용하고 있습니다. 1은 다음과 같습니다.Backgroung의 데이터베이스에 연락처를로드하기 위해 Facebook API를 실행하는 방법

var query1 = FB.Data.query("SELECT name,flid,owner,type from friendlist where owner = me()"); 
          query1.wait(function (row) { 
           friends_array = row; 
           strdata = ""; 
           for (i = 0; i < row.length; i++) { 
            strdata += ' {"name": "' + row[i].name + '", "flid": "' + row[i].flid + '","owner": "' + row[i].owner + '", "type": "' + row[i].type + '"} ,' 
           } 
           strdata = strdata.substring(0, strdata.length - 1); 
           var newjson1 = '[' + strdata + ']'; 
           $.post('loadfbdata.php', { user_id: userid, email: response.email, jsondata: newjson1, flag: '2' }, function (data) { 

           }); 

          }); 

이렇게 세 가지 FQL 쿼리가 있으며 각 쿼리에서 반환하는 데이터는 jQuery 게시 메서드를 사용하여 데이터베이스에 저장됩니다. 어떻게 독립적으로 실행할 수 있습니까? 모든 세 가지 FQL 쿼리는 백그라운드에서 실행되어야 함을 의미합니다. 나는 그들에게 "데이터베이스에서 연락처를 가져 오기 위해 실행"하고 메인 페이지로 리다이렉트 (w8)하지 말아야한다. 지금은 20 초 동안 로딩 이미지를 보여 주므로 모든 세 가지 FQL 쿼리가 작업을 수행 할 수 있습니다.

이 작업을 수행하는 가장 좋은 해결책은 무엇입니까?

답변

0

하나의 가능성은 평소와 같이 "페이스 북으로 로그인"하는 것입니다. 그런 다음 PHP를 사용하여이 사용자가 처음으로 로그온했는지 여부를 감지 한 다음 Javascript를 삽입하여 백그라운드에서 연락처를 가져 오기를 요청하십시오.

1

우선 Facebook 사용자의 친구 목록을 저장하면 안됩니다. 정기적으로 업데이트되어 데이터베이스에 부담을 줄 수 있기 때문입니다.

또는 정지 싶어 상점은 당신이 페이스 북에 로그인 한 후, 수행 및 홈 페이지로 리디렉션 할 수 있습니다

것은, 거기 당신은 같은 FQL 또는 FB.api 자바 스크립트 SDK에서를 사용할지 여부 friendlist 페이스 북을 가져오고 당신은 데이터베이스에 저장 거기에서. 이러한 접근 방식을 사용하면 세 가지 쿼리를 동시에 실행하고 저장합니다. 시간을 절약하고 사용자가 처리를 기다릴 필요가 없습니다.