2014-09-12 4 views
0

한 번에 내 웹 앱에 페이스 북을 통해 로그인 한 사용자의 공개 프로필 데이터를 얻으려면 어떻게해야합니까? 각 사용자에 대해 오래된 액세스 토큰, 이메일 주소 및 아이디가 있습니다. 많은 사람들이 우리 사이트에 댓글 및/또는 게시물을 올렸으므로 그들의 코멘트 옆에 페이스 북 프로필을 표시하고 싶습니다. (.이 게시물은 웹 응용 프로그램에서 만들어진 페이스 북에 표시하지 않습니다 것을 제외하고 this article의 하단에 어떻게하는지 유사) I는 다음과 같이 잘 사진의 URL을 얻을 수 있습니다 :Facebook API - 내 앱 사용자의 공개 프로필 정보 얻기

$fb_photo_json = file_get_contents(https://graph.facebook.com/[facebook user id here]/picture?redirect=false); 
$fb_photo_data = json_decode($fb_photo_json); 
$fb_profile_img_url = $fb_photo_data->data->url; 

$fb_data_json = file_get_contents('https://graph.facebook.com/[facebook user id here]?fields=first_name,last_name'); 

을하지만, 난 항상이 오류를 얻을 : 나는 페이스 북 사용자의 이름을 얻기 위해이 같은 유사한 방법을 시도

{ 
    "error": { 
     "message": "Unsupported get request. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api", 
     "type": "GraphMethodException", 
     "code": 100 
    } 
} 

이 좌절 오류입니다! 페이스 북의 API 문서의 상당 부분을 읽었으며, 나는 그것이 밀도가 높고 크게 도움이되지 않는다는 것을 발견했다. here과 같이이 데이터를 요청할 때마다 별도의 액세스 토큰이 필요합니까? 그렇다면 이것은 외부 요청이 많기 때문에 금지 된 것처럼 보입니다. (우리는 다른 사용자의 게시물이 많이 있습니다.)

UPDATE

내가 페이스 북의 Graph API Explorer으로 장난 봤는데 "응용 프로그램"이 "그래프 API로 선택하면 위와 같이 나도 같은 오류가 탐침". 그러나 "응용 프로그램"의 이름을 웹 응용 프로그램으로 변경 한 다음 "액세스 토큰 가져 오기"를 클릭하고 GET 필드에 내 사용자 중 하나의 Facebook ID를 입력하면 작동합니다! 이제 Facebook을 통해 내 사이트에 로그인 한 모든 사용자의 공개 프로필 정보를 얻을 수 있습니다. 즉, 요청과 함께 앱의 액세스 토큰을 보내면됩니다. 그걸하는 법을 모르지만 나는 그것을 알아 내 자마자 게시 할 것이다 ... 내일 (나는 졸린다).

+0

을 (를 가정 올바르게 로그인을 구현했습니다.) 그렇지 않으면 API를 수동으로 호출하는 경우 액세스 토큰을 매개 변수로 직접 추가해야합니다. – Igy

+0

Facebook의 SDK를 사용하지 않습니다. 저는 Laravel을 위해 특별히 작성된 패키지를 사용하고 있습니다. 액세스 토큰을 매개 변수로 보내는 방법을 파악하는 과정입니다. 나는 http 요청을받는 새로운 사람이다. – sterfry68

답변

0

이 작동 :

$fb_user_info = file_get_contents('https://graph.facebook.com/{users-fb-id}?fields=first_name,last_name&access_token={my-apps-access-token}'); 

이 액세스 토큰이 방법으로 얻을 수 : 당신이 액세스 토큰은 암시 적으로 각 요청과 함께 전송해야 페이스 북의 SDK를 중 하나를 사용하는 경우

$app_token = file_get_contents('https://graph.facebook.com/oauth/access_token?client_id={app-id}&client_secret={app-secret}&grant_type=client_credentials'); 
관련 문제