2014-04-18 4 views
0

나는 Android, IOS 및 Windows Phone 서버에 웹 서비스를 가지고있다. 각 앱은 기본 SDK를 사용하여 Facebook에 연결하고 API 요청을 수행 할 때 fb_user_idaccess_token을 전달합니다. API는 사용자 및 친구 세부 정보를 검색하여 MySQL에 저장해야합니다.Facebook SDK PHP : 귀환 친구 세부 사항

시스템은 잘 작동하지만 친구의 수위, 위치 및 생일을 반환 할 수 없습니다. 페이스 북에

$fb = new Facebook([ 
    'appId' => my_app_id, 
    'secret' => my_app_secret 
]); 

$r = $fb->api("$fb_user_id/?fields=friends.fields(relationship,birthday,location)&access_token=$access_token"); 
var_dump($r); 

내 애플 friends_relationships, friends_locationfriends_birthday 권한이 있습니다. 개발자로 설정된 Facebook 사용자를 사용하여 테스트하면 앱에서 모든 정보를 반환하지만 개발자가 아닌 사용자는 해당 정보를 반환 할 수 없습니다.

아이디어가 있으십니까?

+0

fb_user_id/friends? fields = 생일, 위치, relationship_status가 정상적으로 작동합니다. 어떤 오류가 있습니까? – Ibrahim

+0

오류가 없습니다. 공개 정보 만 반환합니다. 이유를 모르겠다. – bodruk

+0

try-catch에 코드를 래핑하고 OAuthException을 잡으면 오류가있는 경우 표시됩니다. – Ibrahim

답변

0

나는 무슨 일이 일어 났는지 상상했다!

Facebook SDK가 /me 토큰을 생성합니다. PHP에서는 fb_user_id?fields=friends.fields(id,name,birthday,etc)으로 전화를 걸었습니다. 그러나 /fb_user_id의 요청은 /me 생성 된 토큰을 사용하여 정보를 반환 할 수 없습니다.

그것은 브라우저 https://graph.facebook.com/me?fields=friends.fields(id,name,birthday,etc)에 직접 사용하는 경우 작동하지만 페이스 북의 PHP 클래스에서 호출 할 때 실패

An active access token must be used to query information about the current user. 

내 솔루션 : 자세한 내용은

$url = "https://graph.facebook.com/me?fields=id,name&access_token=$this->access_token"; 
    $this->me = file_get_contents ($url);     
    $json = json_decode($this->me, true); 

, 체크 아웃 this answer. 새로운 아이디어를 환영합니다.