본문 바로가기

닷컴's_열공/SNS

[PHP]Facebook에서 데이터 가져오기

#0. Facebook은 OAuth 2.0을 씁니다.

사실 전에 안드로이드에서 트위터 연동하는거 해 본다고
OAuth1.0을 해 봤었습니다.

그래도 버전이 다르고 기억도 안나서 걱정되었는데
확실히 예전만큼 이해하고 쓴다기 보단 막 쓴다는 느낌이네요... ㅠ_ㅠ

#1. 어플 등록
https://www.facebook.com/developers/createapp.php
여기로 가셔서 어플을 등록 합니다.
이름적고 동의 하시고 자동가입 방지 통과 하시면 이런 저런 정보 창이 뜹니다
대충 입력하고
왼쪽에 텝에 보시면 지금 about일텐데
밑에 Web Site가 있을겁니다
여길 입력해 주셔야 합니다
안그러면 인증과정이 제대로 동작하지 않습니다.
그냥 막 입력하시면 안되고 돌아갈 페이지와 host가 일치해야 합니다.

참고로 여기까지는 괜찮은데 이걸 실제로 올리려면 페북 활동을 10개월 이상 해야 합니다
전 9개월 28일 해서 안되는군요;;;


#2. 소스 복붙

 http://developers.facebook.com/docs/authentication/

여기에 가시면 자세한 설명과 그림과 소스까지!!! 
하지만 영어 입니다 으히히히 ㅠ_ㅠ

그래서 국내 블로그 열심히 검색했지만 마땅히 좋은 정보가 없네요....
(제가 검색능력이 후달리는 겁니다. 좋은 글을 쓰신 블로거님에겐 죄송;;)


네 일단 저기 보시면 다양한 측면의 소스가 있습니다.
일단 저희는 Server Side 입니다. 
php로 서비스를 제공하는 쪽이니깐요 

저의 목표는 일단 정보 가져오기니까
유익한 설명들과 그림들을 뒤로 하고 설명을 진행하겠습니다.

내려가시면 php 소스가 나옵니다.
Client-side Flow 바로 위에 있습니다.

여기 소스를 복사 하셔서 필요한 정보를 잘 넣으시면 일단은 잘 돌아갈겁니다.
저희가 필요한 것은 마지막에 얻은 access_token 입니다.
이것만 있으면 위에서 허용한 곳에 접근은 언제든지 마음대로 할 수 있습니다.

복사 하신 소스 잘 돌아가시는지 확인 해 보시고

돌아 간다면 밑에  보시면 이 부분이 있으실텐데

     $user = json_decode(file_get_contents($graph_url));
     echo("Hello " . $user->name);
     echo("<br />". $params['access_token']); // 이 줄을 추가해 주시면 됩니다.
}
else {
     echo("The state does not match. You may be a victim of CSRF.");


그럼 화면에 이상한 숫자와 문자들이 혼된 것이 뜰겁니다 이것이 access_token입니다 
 http://developers.facebook.com/docs/reference/api/

여기 링크로 가시면 정보를 json으로 되돌려 주는 페이지들을 알려 줍니다. 
아까 찾은 access_token을 url에 넣으셔서 보시면 주르륵 뜨는게 보일겁니다.
json 파싱은 저도 못하므로... 공부하러 가겠습니다 으힑 ㅠ_ㅠ 
http://json.org/ 여기 참고 하면 될듯

#3. 더 많은 권한!

아 더 많은 권한을 주고 싶으시면 
http://developers.facebook.com/docs/authentication/permissions/
여기에 가셔서 참고 하시고 


중간에 보시면 이런 부분이 있는데

 if(empty($code)) {
     $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
     $dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" 
       . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
       . $_SESSION['state']
. "&scope=read_stream,email";  // 여기 처럼 scope 변수에 추가 해 주시면 됩니다 ㅎㅎ
 
http://terminaldogma.tistory.com/51 여기서 참조하였습니다. 

'닷컴's_열공 > SNS' 카테고리의 다른 글

트위터 자동 포스팅하기  (0) 2011.10.20
페이스북 Graph API를 사용하는 웹어플 만들기  (1) 2011.10.20
[페이스북]FB.api 사용  (0) 2011.09.27
페이스북 로그인  (0) 2011.09.26
페이스북 API  (0) 2011.08.29