<a.php>

<?php

echo '감자';

?>



a.php라는 php 파일을 불러오기위해서는 include 라는 명령문을


 쓰신후 뒤에 경로를 입력하시면 됩니다.


include '[파일경로]'



<b.php>

<?php

include 'a.php';

echo '고구마';

?>



이후에 localhost/b.php 를 호출하시면 화면상에


 감자고구마


 라고 쓰여지는 페이지가 뜨는 것을 확인 하실수 있습니다.


주소 목록 가져오기.
 
http://apps.facebook.com/bejeweledfriend/index.php

php 경로가 위와 같을경우 결과는 아래와 같습니다.

PHP_SELF


<?
echo $_SERVER['PHP_SELF'];
?> 

출력 : 
bejeweledFriend/index.php 



dirname

<?
echo dirname($_SERVER['PHP_SELF']);
?>

출력 : /bejeweledFriend



 basename
 

<?
echo basename($_SERVER['PHP_SELF']);
?>

출력 :  
index.php

 

HTTP_HOST
 

<?
echo $_SERVER[HTTP_HOST];
?>

출력 :  mbs723.cafe24.com



HTTP_REFERER

<?
echo $_SERVER["HTTP_REFERER"];
?>
 

출력 : 이전페이지 주소 


 안녕하세요 생존본능입니다.

 Facebook을 내용은 안쓰고 자꾸 땃짓만 하게 되네요.ㅠ 

 Facebook에서는 정보를 주소에 지정하여 아래와 값이 값을 전달하여 줍니다.

 http://~~~~~~~~~~~~~~~~~~~

 라는 주소롤 이동하면 아래와같은 정보가 출력되게 됩니다.
 

{
   "id": "220439",
   "name": "Bret Taylor",
   "first_name": "Bret",
   "last_name": "Taylor",
   "link": "http://www.facebook.com/btaylor",
   "username": "btaylor",
   "gender": "male",
   "locale": "en_US"
}

 

 친구들이나 기본 정보값을 말이죠.

 하지만 위 정보를 이용하고 싶다고 Json으로 그냥 주소 값을 읽으면

 Json은 주소안에있는 정보를 읽는것이 아니라 "http://~~" 라는 주소를 읽게 될것입니다.



 그래서 이때 필요한것이  ' file_get_contents ' 같은 함수를 사용하여야 합니다.

 사용법은 참 쉽습니다.

 


$url = '주소';
echo file_get_contents($url);
 

 

 위와같이 주소만 지정해 주면 아무할일이 없습니다.

 하지만...저는 이렇게 쉽게가면 안된다고 오류를 발생시켜주시네요..

 file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /home/hosting_users/mbs723/www/game/numberNumber/index.php on line 65



 허울...이건 먼말이여 file_get_contents()가 비활성화 됐다고?

 음음...맨날 오류없이 한번에 넘어가는 적이 없네요.ㅠ

 이럴경우에는 file_get_contents() 함수를 서버쪽에서 열어주지 않아서 발생하게됩니다.

 보통 
file_get_contents()은 url뿐만 아니라 파일 읽기도 가능하기때문에 닫아놓지 않았나 싶은데요

 그럴때는 curl을 사용하면 됩니다.

 사용법은 아래처럼 사용하면 됩니다.
  

$url = 'https://graph.facebook.com/btaylor';

$ch = curl_init();


curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

$g = curl_exec($ch);

curl_close($ch);

echo $g;


 그러면 화면에 정상적으로 출력되시는 것을 확인할수있습니다.

 하지만 매번 이런식으로 쓰면 귀찮겠죠?

 그래서 함수를 만들었습니다.

 

 

 위 파일을 받으신후 사용할 위치에 위치시키시면 됩니다.

  저같은 경우에는 같은위치에 위치시키겠습니다.

 
 이후에 아래 코드를 추가해주시면 됩니다.

 

include_once 'Curl.php';

$url = 'https://graph.facebook.com/btaylor';


echo curl($url);

 
 그냥 include_once이후 curl 함수만 호출하면 정상적으로 출력되는것을 확인할수있습니다.

 

 


 이후 Json를 사용하여 값을 object로 만들어주면 끝나게 됩니다.~

 여기까지 읽어주셔서 감사합니다.^^ 
  1. name 2011.07.12 11:25 신고

    좋은 정보 감사합니다 나머지 자료는 전부 따라 실행이 가능했는데
    오류부분은 없는거 같은데 이번꺼만은 아무것도 출력되질 않습니다.

    • 생존본능 2011.07.17 02:31 신고

      위내용은 Facebook 내용인 아닌 PHP 내용입니다.
      그리고 출력되지 않으시면 출력하는 url에 값이 정상적으로 있는지 확인먼저 해보시고, 그래도 안되시면 메일로보내주시면 같이 확인해드리겠습니다.^^

  2. 김세엽 2011.08.17 16:09 신고

    Curl.php에서 curl_init()메소드 호출부분좀 공개해주실수있나요 초보라 ㅜ_ㅜ

    • 생존본능 2011.08.17 23:36 신고

      다운받아서 그냥 열어보시면 됩니다.^^;
      내용도 같이 남겨드립니다.
      <?php
      function curl($url)
      {
      $ch = curl_init();

      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
      $g = curl_exec($ch);
      curl_close($ch);
      return $g;
      }
      ?>

  3. =a =;; 2012.05.10 18:57 신고

    트위터 follower, follow 를 들고 왔는데
    왜 100개만 들고 오는걸까요? =ㅁ =;

  4. 지나가던중 2013.08.01 16:44 신고

    감사합니다.
    복 받으실거에요.

  5. 지나가던 2013.08.10 01:33 신고

    감사합니다 많은 도움이 되었습니다!

  6. 감사합니다 2014.04.23 16:18 신고

    감사합니다!!!!

 안녕하세요 생존본능입니다.^^

댓글이 거의 없어서 그냥 허공에다 글을 쓰고 있는게 아닌가했어요.ㅠㅠ

 몇몇분이 달아주시는 댓글에 힘을 얻어  강좌아닌 강좌를 진행하겠습니다.

  오늘이야기는 저번에 진행했던 인증절차이후 정보를 가져오기입니다.


  보통 페이스북 게임같은경우에는 혼자서 하는 오락실 게임이 아니며,

 혼자하는 오락실 게임이라면 페이스북이 소셜네트워크라며 칭송받으며 팽창할수없었을겁니다.

 페이스북은 나의 정보와 내친구 정보를 제공함으로써,
 
 친구들과 게임을 같이 할수있고 내정보를 기록해 다른 제3자와 경쟁을 환경을 만들수있습니다.

 이러한 부분의 기초가 될수있는 이번강좌는 접속자의 정보를 가져오는 방법입니다. 

 ' 페이스북에서 인증을 받았으니 정보를 주세요 ' 라고 말로해봐야 소용없는일이고,

 알아야 쓰는거지 그걸 모르면 인증은 받으나 마나겠죠?ㅎ
 
  페이스북에서는 정보가져올때 효율적으로 사용하게끔만들기위해서

 Facebook에서는 sdk 라는것을 배포하고있습니다.

 가장 먼저해야 할일은 이 sdk를 내컴퓨터로 다운받는것입니다.

 저는 php를 사용할것이기 때문에 php sdk를 다운받겠습니다.


 https://github.com/facebook/php-sdk/ 

 위 주소로 이동하셔서 Downloads를 클릭하여줍니다.

 
클릭하면 뜨는 창에서 저는 윈도우기 때문에 .zip 를 다운받겠습니다.



다운받은 파일을 이제 압축을 풀어서 사용하면 됩니다.

압축을 풀면 폴더의 이름이 ' facebook-php-sdk-5ab1f64 ' 라고 나오는데,

 import할때 불편하여 src라는 이름으로 폴더명은 변경하였습니다.

 이렇게 하시면 기본적으로 정보를 가져올 준비는 끝난것입니다.

 준비가 끝났으면 정말 정보를 가져오는지 확인해보겠습니다.

 Facebook에서는 처음시작할때 사용하라고 예제파일도 친절하게 공개해주고있습니다.

 예제파일을 압축을푼 폴더에들어가셔서 examples 폴더로 이동합니다.




그러면 폴더안쪽에 ' example.php ' 라고있는데, 이 파일을 복사하여

 가장 위쪽에 폴더로 복사하여 넣어줍니다.




그리고 전시간에 사용했던 index.php 파일을 가져오면 됩니다.

 절차상 유저정보를 가져오기위해서는 아래와 같습니다.

 유저가 경로를 통해 입장 -> 허가받기 -> 유저정보가져오기

 그렇기때문에 허가받기를 아직하지 않으신분은
 
' [FaceBook] Ex02 페이스북 허가요청 받기. ' 를 먼저 진행해주시기 바랍니다.

 



 위절차를 진행하신분은 위와같은 화면이 나오게됩니다.

 그러면 두 소스를 연결해보겠습니다.


 example.php 파일을 더블클릭하여 열어줍니다.

 그이후 소스에서 example.php를 include하여줍니다.

example.php

 <?php   $app_id = "215395148479334";   $canvas_page = "http://apps.facebook.com/testaefesd/";
$auth_url = "http://www.facebook.com/dialog/oauth?client_id="
  . $app_id . "&redirect_uri=" . urlencode($canvas_page);

   $signed_request = $_REQUEST["signed_request"];
    list($encoded_sig, $payload) = explode('.', $signed_request, 2);
    $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);

    if (empty($data["user_id"])) {
  echo("<script> top.location.href='" . $auth_url . "'</script>");     } else {
   include_once("example.php");
    }
 ?>



 example.php를  더블클릭하여 오픈하여줍니다.

소스를 보면 경로가 바뀐부분이 있는데, 이부분을 바로잡도록 하겠습니다.

 



 <?php   //require 'src/facebook.php'; require 'src/facebook.php';

 ?>

 위와 같이 경로를 존재하는 위치로 변경하여줍니다.


 




 그리고 위쪽의 (1)appId , (2)secret  번을 아래 그림의 값을 적어주면 됩니다.

 



 그리고는 확인해보면 짠~

 


 
   하고 오류가 나오네요.;;

세션을 여번 사용한경우 발생되는데 이럴때는 src/facebook.php 소스안에서

 



 
@session_start(); 으로 값을 수정해주시면 됩니다.

 저는 38번째 줄이네요.^^

 그리고 한글 깨지는 부분은 제 블로글중 ' [PHP] PHP 한글 깨짐 현상 관련 수정 방법. '

 부분을 확인하시면 찾아 보실수있습니다.

 그러면 모두 완성된 페이지를 확인하실수 있습니다.

 





 좀더 자세한 내용은 서브강좌에서 다루도록 하겠습니다.^^

 그리고 다음강좌는 내 앱 또는 홈페이지에 FaceBook에서 제공하는 버튼 커뮤니티 연결하기입니다.^^


 이번내용은 요즘 공부할게 많아서 조금 늦어졌습니다. 죄송합니다.ㅠ

 회사다니다가 이직을 준비하는중이라 시간이 조금 들쑥날숙하네요.^^;

 취업전선에 뛰어들 준비중이라 그전까지는 열심히 작성하도록 하겠습니다. 

  감사합니다.

  ...그리고 혹시 괜찮으시다면 저랑 페이스북 친구해요...굽신굽신.ㅠㅠ

 도움되셨으면 추천부탁드리겠습니다.
  
  1. 냐하하 2011.05.30 10:22 신고

    강좌 잘보고 있습니다~ 화이팅!

  2. Brandon 2011.05.31 13:25 신고

    ^^ 내용 강좌좀 저희 카페에 부탁드릴께요. 직접 퍼가는것보다는 요청드리는게 좋을것 같아서요. http://cafe.naver.com/unity3dkorea 여기에 강좌 부탁드릴께요. 번거로우시면, 허락하시면 퍼다가 카페에 실어도 될까요?

    • 생존본능 2011.05.31 14:33 신고

      가입신청드렸습니다.^^

  3. 쿠후 2011.06.03 14:03 신고

    강좌좋네요 ^^
    현재는 해당 id의 개인정보를 가져오는데
    해당 id의 친구 목록을 저런식으로 뿌려주는 api소스는 없나요?

    • 생존본능 2011.06.04 02:37 신고

      감사합니다.^^ 제가 알기로는 페이스북에서 제공하는 예제는 아직은 못본걸로 알고있습니다. 다음번에 그부분 관련해서 강좌 진행하겠습니다.^^

  4. 쿠후 2011.06.07 12:52 신고

    감사합니다. ^^
    기대할께요~ 얼릉올려주세요 ㅎㅎ

  5. result 2011.06.13 16:16 신고

    친구 목록은 쿼리를 날리거나 기본적으로 제공하는 api로 가져오시면 됩니다

    /*
    $fql_app_user = "SELECT uid, is_app_user,name, pic, sex FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1='{$uid}')";
    $param_app_user = array('method' => 'fql.query',
    'query' => $fql_app_user,
    'callback' => '');
    $app_user = $facebook->api($param_app_user);
    */

    /*
    $url = "https://graph.facebook.com/me/friends?access_token=".$session['access_token'];
    $result = json_decode(file_get_contents($url));
    */

    • 생존본능 2011.06.13 16:43 신고

      좋은정보 감사드립니다.^^

    • 쿠후 2011.06.14 10:18 신고

      위에 친구목록 사용법 자세히 알고싶은데요~

    • 생존본능 2011.07.23 17:04 신고

      네 다음내용은 위내용으로 하겠습니다. ㅠ 그런데 제가 일이 생겨 다음 내용은 조금 늦어질것같습니다. 죄송합니다.ㅠ

  6. 우왕 2011.06.21 14:52 신고

    안녕하세요
    페북 개발에 대한 정보가 별로 없어서 고생하고 있었는데...
    이런 너무 좋은 정보들을 올려주셔서 감사합니다.
    가뭄에 단비가 내리듯, 님의 글은 저의 마음을 감동으로 적셔 주셨습니다.
    앞으로도 페북에 대한 좋은 정보 기대하겠습니다.
    더운데 수고하세요 ^^

    • 생존본능 2011.06.21 18:05 신고

      아.. 정성스런 댓글 감사드립니다.ㅠ 힘내 열심히 하겠습니다.!

  7. 쿠후 2011.06.22 11:49 신고

    생존본능님 강좌를 정말 너무기다리고있습니다. ㅋㅋ
    고생많아요 ^^

    • 생존본능 2011.07.23 17:04 신고

      계속 기다려주시는데 한없이 일정이 밀리기만해 죄송합니다. 시간이 안나네요.ㅠㅠ 죄송합니다.

  8. 감자당 2011.06.28 17:25 신고

    강좌 잘보고있습니다.
    궁금한게 있는데요 원격포스팅은 api가 지원하나요?
    방법을 알고싶어요 ^^ 내용을 파라미터로 해서 넘기면 페이스북에 등록되는
    그런 거요 ^^.. 강좌 잘보고있어요~

    • 생존본능 2011.07.17 02:30 신고

      FB.init({
      appId:'아이디', cookie:true,
      status:true, xfbml:true , display:'popup'});
      FB.ui({
      method: 'feed',
      name: 'Click And Click',
      link: 'http://apps.facebook.com/clickgameclick/',
      picture: 'http://mbs723.cafe24.com/facebook/img/icon.jpg',
      caption: clickCount+' has been achieved!!',
      description:'Your speed: '+(clickCount/10)+
      ' clicks/sec'});

      같은방식으로 글을 남기실수있습니다.

  9. name 2011.07.12 12:25 신고

    덕분에 많은 도움이 되고있습니다 감사합니다

  10. jerrydogg 2011.07.19 16:34 신고

    강좌 재밌네요. 덕분에 재밌게 잘 보고 갑니다.

  11. nuto83 2011.08.10 13:33 신고

    안녕하세요 ~ 다름이 아니라 ..

    저도 계속 따라오면서 테스트 해보고 있는데 ..ㅜㅜ

    저 오류가 나면서 도저히 ..앞으로 나아갈수 가없어요 ㅜ

    왜 그럴까요 ..ㅜ

    Parse error: syntax error, unexpected '{' in /host/home3/nuto83/html/facebook/example.php on line 36

  12. nuto83 2011.08.10 14:18 신고

    아 혹시나 해서 제가 쓰고 있는 호스팅 에 들어가서 확인해보니 ..php버전이 4.4 인데 .... 그래서 ..그럴까요 .....??????? php 문법이 맞지 않는 ...???

  13. nuto83 2011.08.10 15:07 신고

    아아 ..해결햇습니다 ...php 버전이 문제였던것 같습니다 ;;

  14. bosss 2011.11.02 18:21 신고

    다이어트 앱 받으러 왔다가 어?...어어??.... 하다보니 강좌도 있고 의외로 알차고 인기있는 청년!!! 멋지구리~~~ 화이팅입니다~~

    • 생존본능 2011.11.02 21:04 신고

      여자친구가 없다보니....ㅋㅋㅋㅋ 감사합니다~ 케멋있는 수댕이형도 화이팅!


 



 오늘  강좌는 허가요청 받기입니다.


 FaceBook 안에 들어가는 게임의 경우 다른 인증없이 아무나 만들수있기때문에


 Facebook 에서는 유저정보및 기본정보를 제공하기가 어렵습니다.


 그래서 만들어진 기능이 허가받기입니다.


 허가받는 방법은 아래주소에 값을 적어 넣어주시면 완성됩니다.

 

 참 쉽죠?


https://www.facebook.com/dialog/oauth?
client_id=어플리케이션_아이디&redirect_uri=캔퍼스_페이지

 


어플리케이션 아이디란 (1) 에 있는 내용을 적고, 캔퍼스 주소는 (2) 번의 내용을 적어주면 됩니다.

 만약 (2) 번인 ' 캔버스 페이지 ' 밑에있는 ' Canvas URL ' 을 적으시면 앱을 인증해도

 다음페이지로 넘어가지 못하고 계속 루프가 돌게됩니다. 

 

 그렇게 필요한 내용을 전부 넣어서 완성된 주소를 주소창에 붙여 넣으면


 어플리케이션 인증 화면이 나오게 됩니다.


https://www.facebook.com/dialog/oauth?client_id=215395148479334&redirect_uri=http://apps.facebook.com/testaefesd/ 

 

 이런식으로 인증받는 경우 내 어플리케이션 아이디와 되돌아올 캔퍼스 페이지를 넘겨주면

 

 Facebook에서 인증 화면을 띄워준이후 승인시 다시 캔퍼스 페이지로 넘어오게 됩니다.


제가 적은 위 주소로 이동해서 보시면,


 

 



 위화면처럼 정상적으로 나오면, 기본 정보에 접근이 완성 된것입니다.

 

 

 끝!!!! 이면 좋겠지만...

 

 이와같은 절차를 유저에게도 내 어플리케이션에 들어오기위해서는


 다른 유저에게도 저 주소로 이동해서 인증받고오세요.. 라고할수없기때문에


 유저가 입장시 저 페이지로 이동하여 인증받았는지 여부를 확인하는 코드가 추가되어야 합니다.

 

 하지만 이부분은 같은 경우 Facebook을 개발하는 개발자 모두가 같은 코드를

 

 적는 부분이기 때문에 Facebook에서 이미 정리가 되어있습니다.


 이부분만 복사하여 사용하면 됩니다.


 내용은 다음과 같습니다.


 

 <?php 

     $app_id = "YOUR_APP_ID";

     $canvas_page = "YOUR_CANVAS_PAGE_URL";

     $auth_url = "http://www.facebook.com/dialog/oauth?client_id=" 
            . $app_id . "&redirect_uri=" . urlencode($canvas_page);

     $signed_request = $_REQUEST["signed_request"];

     list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

     $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);

     if (empty($data["user_id"])) {
            echo("<script> top.location.href='" . $auth_url . "'</script>");
     } else {
            echo ("Hello " . $data["user_id"]);
     } 
 ?>



 YOUR_APP_ID 에는 (1) 내용이 YOUR_CANVAS_PAGE_URL 에는 (2) 내용이 들어가면 됩니다.


참고로 위에서 사용된 Json은 PHP 5.2부터 자체지원 되기 때문에 이전 버전에서는


위의 코드를 사용하면 오류가 발생하게 됩니다.


그럴때는 PHP 5.2 이하버전 Object 에 json_decode 사용하기. 로이동하셔서 확인하시면 됩니다.  


위 코드가 추가된 페이지에 접속하여 허가 클릭한 이후에


Hello!! + id 가 나오면 성공한것입니다.

 


코드가 추가된 내용은 첨부해 놓겠습니다.







그후에 메일 수신또는 뉴스피드 접근이 필요할경우 이전에 사용했던 주소 뒷편에

 

 &scope=email,read_stream 등을 붙여서


인증 받으면 정상적으로 출력되게 됩니다.

https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID
     &redirect_uri=YOUR_CANVAS_PAGE&scope=email,read_stream


위 코드로 이동한 경우입니다.

 

기본정보접근 밑에 이메일 수신과 내뉴스피드의 게시물에 접근 이라는 인증 내용 추가된것을


확인하실수 있습니다.


허가받기 내용은 여기까지입니다.






그리고 메세지 보내는 방법과 공유요청등이 비슷한 방식으로 사용하게됩니다.


사용방법은 위 인증방식처럼 코드의 아이디와 캔퍼스를 수정하셔서 사용하시면 됩니다.


 이전사용했던 인증 방식과 동일하게 페이지에 넣어주시면 됩니다.


 

<?php 

         $app_id = "YOUR_APP_ID";

         $canvas_page = "YOUR_CANVAS_PAGE_URL";

         $message = "Apps on Facebook.com are cool!";

         $feed_url = "http://www.facebook.com/dialog/feed?app_id=" 
                . $app_id . "&redirect_uri=" . urlencode($canvas_page)
                . "&message=" . $message;

         if (empty($_REQUEST["post_id"])) {
            echo("<script> top.location.href='" . $feed_url . "'</script>");
         } else {
            echo ("Feed Post Id: " . $_REQUEST["post_id"]);
         }
?>




위 코드를 페이지에 추가하여 사용하면 아래와같이 페이지가 생성됩니다.

 

 위처럼 추가된 페이지에서 글을 쓰지면 정상적으로 내 담벼락에 글이 적혀지는 것을 확인

 

 할수있습니다.


위에서 글을 남기게 되면 접속된유저의 담벼락에 글을 적게 됩니다.

 

그리고 공유요청 코드는아래와 같습니다.

 

 

<?php 

         $app_id = "YOUR_APP_ID";

         $canvas_page = "YOUR_CANVAS_PAGE_URL";

         $message = "Would you like to join me in this great app?";

         $requests_url = "http://www.facebook.com/dialog/apprequests?app_id=" 
                . $app_id . "&redirect_uri=" . urlencode($canvas_page)
                . "&message=" . $message;

         if (empty($_REQUEST["request_ids"])) {
            echo("<script> top.location.href='" . $requests_url . "'</script>");
         } else {
            echo "Request Ids: ";
            print_r($_REQUEST["request_ids"]);
         }
?>

 

 

위 코드 추가시 아래와 같이 화면에 표시되게 됩니다.





FcaeBook에서 기본적으로 사용되는 코드는 공유되어있기때문에


http://developers.facebook.com


 페이스북으로 이동하셔서 참고하시면 많은 정보를 찾으실수 있으실 겁니다.


 그럼 여기까지입니다.


 다음에는 접속자의 기본적인 정보를 가져오는 방법을 진행하겠습니다.^^

  1. 우끼리 2011.05.18 19:33 신고

    좋은 정보네요! 고맙습니다.

    • 생존본능 2011.05.19 09:29 신고

      글마다 답글달아주시니..감사드려요.ㅠ

  2. huk 2011.05.23 10:31 신고

    강좌 잘 보고있어요 ㅠㅠ
    php초보인데 웹호스팅한데서 json을 지원안해요 ㅠㅠ
    방법을 가르켜주세요 ㅠㅠ

  3. 석이 2011.05.23 18:54 신고

    모가 문제일까요 허가 뜨고 인증하면 페이지 루프가 걸려요
    캔버스페이지 계속 새로고침되요 ㅠㅠ

    참고로 인증 파일은 index.php로 만들었고
    캔퍼스 페이지가면 index.php바로 연결되는데
    무한루프가 되요 ㅠㅠ

  4. 석이 2011.05.23 19:11 신고

    오류 해결됐네요 php명을 바꾸고 그 php로 실행시키니
    인증 뜨고 캔버스 url로 연결은 잘됩니다.
    근데 인증을 앱url로 쳐서 들어갈때 바로 뜨는건 어떻게 하는건가요?
    Hello!! + id 또한 안나옵니다.
    user_id를 못가져오는듯한데 ㅠㅠ

    • 생존본능 2011.05.24 13:25 신고

      " [FaceBook] Ex02 페이스북 허가요청 받기. " 부분을 다시한번 천천해 해보시고 그래도 안되시면, 소스를 보여주시면 같이 확인해드리겠습니다.

  5. 끼룩 2011.05.27 15:01 신고

    더 연재 안하시나요? 강의 기다리는데 뜸하네요 ㅋㅋ

    • 생존본능 2011.05.27 17:17 신고

      지금 작성중이고 마무리단계있습니다.
      쪼~금만 더 기다려주세요~^^

  6. 강성철 2011.05.29 03:00 신고

    좀 문제가 있네요 json없어서 php강좌 그대로 따라했습니다.
    index.php만들고 소스 그대로해서 앱아뒤랑 캔버스페이지만 수정했는데
    앱 들어가면 새로고침만 무한 반복됩니다.

    if (empty($data["user_id"])) {
    echo("<script> top.location.href='" . $auth_url . "'</script>");
    } else {
    echo( "Hello!!" . $data["user_id"] );
    }

    로그인을 해도 user_id가져오지 못하고 계속 첫번째 조건만 반복되는것 같아요~ json이 문제인지.. 머가 문제인지 도통 모르겠네요~

    • 생존본능 2011.07.23 17:05 신고

      안녕하세요 생존본능입니다. json.php 에서 object를 제대로 읽지 못하는 현상을 확인하여 이에 대응하는 내용 추가하였습니다.
      그 내용은 http://mbseo.wo.tc/30 여기서 확인가능합니다. 바로대응드리지 못한점 죄송합니다.

  7. 2011.05.29 20:01

    비밀댓글입니다

  8. name 2011.07.11 17:17 신고

    [입문] 좋은정보 감사합니다 질문은 원래 hello + ID 에서 ID는 숫자로 나오는게 맞나요? 이름을 출력하려면 어떻게 하나요?

    • 생존본능 2011.07.14 16:18 신고

      $me = $facebook->api('/me'); 에서 가져온 $me에서
      $me['name']을 호출하시면 됩니다.^^

  9. 떠더리 2012.07.04 21:08 신고

    질문이요~ ^^
    페이지 탭으로 앱을 만든 다음에요..
    인증을 받고..
    다시 페이지탭으로 넘어와야 되는경우에는..
    페이지 탭의 주소를 너어주어야 되는건가요?

    그런데 페이지탭의 주소는 어찌 아나요?

 

 FaceBook 관련 개발 자료는 역시 FaceBook이 최고입니다.

 

 http://developers.facebook.com/?ref=pf

 

 하지만 영문자료라 접근하기가 너무어려운데요,

 

 그래서 제가 했던부분 공유해드릴게요.^^

 

 코드한줄없이 추가만 하기입니다.ㅋ

 

 

 

 여기페이지에서 만들내용은

 

 

 

 이렇게 페이스북에 자신의 페이지를 넣는 작업입니다.

 

 

 

 

 시작하기전에 필요한 내용부터 체크하겠습니다.

 

 FaceBook 게임의 경우 FaceBook에서 보여지기는 하지만 앱페이지는 FaceBook이 아니라 본인이

 

 올린 페이지 이기 때문에 호스팅이 필요합니다.

 

 호스팅은 무료로 제공되는 싸이트나 유료 결재로 구입이 가능합니다.

 

 뭐 없으시다면 우선 테스트로 아래적혀있는 제 주소를 사용하셔도 테스트하는데는 지장이 없습니다.&^^

 

 

그럼 시작하겠습니다.

 

 우선 FaceBook 게임을 시작하기 위해서는 Facebook 로그인이후 개발페이지로 이동해야합니다.

 

 개발페이지는 위에 적어드렸던 http://developers.facebook.com/?ref=pf 로 이동합니다.

 

 

 

 그리고 우측 상단에 보시면 ' 내앱 ' 메뉴로 클릭하여 이동합니다.

 

 


새 앱 만들기를 클릭합니다.

 

이후 개인인증을 해야하는데 신용카드나 휴대폰 인증으로 인증이 가능합니다.

 

 

이후 어플리케이션이름을 추가한이후 동의를 선택

 

 어플리케이션 만들기를 시작합니다.

 

 이동하면 보안키를 입력하는 부분이 있는데 화면에 보여지는 보안키를 입력한후 이동하면 됩니다.

 

 

 

이동하면 앱에대한 기본정보창이 화면에 나오는데 설명등을 채워준이후

 

 FaceBook 통합으로 이동합니다.

 

 

 

 FaceBook통합으로 이동하면 다음과같은 화면이 보여집니다.

 

 위 화면에서 (1) 번부분은 FaceBook에서의 내 앱의 주소가될 주소이고,

 

 (2)번부분은 내 호스팅에있는 페이지 주소입니다.

 

 본인 호스팅에있는 페이지는 폴더안에 index.(php , html) 을 찾기때문에

 

 http://mbs723.cafe24.com/hello/

 

 계정안에 hello 폴더안에 index.html로 설정하였습니다.

 

 우선 본인 호스팅이 없다면 제 계정으로 테스트로 해도 상관없습니다.

 

 

 

 

위와 같이 채워넣어주면 되는데 (1)번의 캔버스페이지 같은경우 이미 다른사람이 사용하고있어, 존재하는경우가

 

 있기때문에 저는 임의 이름을 넣어주었습니다.

 

 그리고 아래 변경내용 저장을 클릭하여줍니다.

 

 

그러면 FaceBook에서 게임페이지가 완료되었습니다.

 

 본인 페이지가 보고싶다면 위에 (1)번내용에 적었던 내용 주소를 주소창에 적어주면 됩니다.

 

  저는 http://apps.facebook.com/abcdefdsasddf/ 이렇게 설정하였습니다.

 

 또는

 

 

 앱페이지 를 클릭하여 페이지를 이동한후

 

 

 

 

 앱으로 가기를 클릭하면

 

 


 Hello world

 Hello FaceBook

 이제 본인의 페이지를 확인하였습니다.

 이러면 기본적으로 본인의 페이지를 FaceBook에 넣는 작업은 완료되었습니다.

 

 이후에 다른사람들이 접근을 할때 게임을 FaceBook에서 인증작업이 들어가게 되는데요,

 

 이부분은 다음번에서 설명드리겠습니다.^ㅡ^

 

 수고하셨습니다.


  1. 히나 2011.11.09 11:14 신고

    유용한 정보감사합니다. :)


 안녕하세요 .생존본능입니다.

 우선 이전에 Facebook 강좌중 잘못된 정보를 제공해드려 죄송합니다.

 테스트 해본결과 JSON.php 에서 제공하는 json_decode 에서 object를 읽을경우

  ' Cannot use object of type stdClass as array in '

 오류가 발생되는것을 확인하였습니다.

 object에 대한 return 값이 아무것도 넘어가지 않고있는데요,

 확인이 늦은점 죄송합니다.

 그래서 다른 방법으로 알려드립니다.

  



 우선 위 파일을 다운받으신후 

 

 
 index.php 파일과 같은 경로에 놓습니다.

 Json_decode.php 파일안에는 Json_decode를 읽는 함수가 들어있습니다.

 이 파일을 index.php 파일에서 호출하여 줍니다.

 

 <?php 


     
require 'Json_decode.php';
 

     $app_id = "YOUR_APP_ID";


     $canvas_page = "YOUR_CANVAS_PAGE_URL";


     $auth_url = "http://www.facebook.com/dialog/oauth?client_id=" 

            . $app_id . "&redirect_uri=" . urlencode($canvas_page);


     $signed_request = $_REQUEST["signed_request"];


     list($encoded_sig, $payload) = explode('.', $signed_request, 2); 


     $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);


     if (empty($data["user_id"])) {

            echo("<script> top.location.href='" . $auth_url . "'</script>");

     } else {

            echo ("Hello " . $data["user_id"]);

     } 

 ?>

 
 이렇게 되면 정상적으로 object를 읽어올수있게 됩니다.


 이러면 json_decode 사용하기 완료입니다.^^

 감사합니다~


당신의 속도를 테스트 하라! 킬링타임용 게임으로,

게임의 목적은 단순합니다.

짧은 시간내에 많은 클릭수를 기록하기 입니다.

 

제가 만든 게임이라 한번 올려봤어용.ㅎ

한판 즐겨주세요 굽신굽신.^^


http://apps.facebook.com/clickgameclick/

 
  1. 버꾹 2011.05.21 02:28 신고

    저도 이런거 만들고 싶어요 ㅠㅠ
    다음 강좌 계속 부탁드려요~

    • 생존본능 2011.05.21 13:49 신고

      넵.ㅠ 빠른시일내에 다음 강좌도 진행할게요 관심가져주셔서 감사합니다.^^

  2. desict 2012.03.23 17:38 신고

    안녕하세요, 요즘 페이스북 마케팅에 대해 열심히 공부하고있는 사람인데요^^:
    직접 앱 개발까지 시도 하고 있는데, 한가지 막히는 부분이 있어서요.
    '페이스북 앱'을 '좋아요'를 누른 팬에게만 노출 시키는 방법을 알고 싶은데,
    이부분에 대해서 강좌 부탁 드려도 될까요?^^


 안녕하세요 생존본능입니다.

 PHP 5.2이하버전에서 어떻게 사용하시는지 질문하셔서, 그 내용 적어드립니다.^^

 우선 PHP 5.2버전에서는 JSON이 기본적으로 제공되나, 하위버전에서는 지원되지 않습니다.

 그렇기 때문에 json 라이브러리를 다운받아서 사용하셔야 하는데요,

 우선 라이브러리를 다운받기위해서는 아래싸이트로 이동합니다.

 http://www.json.org/

 
  



이동하셔서 아래쪽에 보시면 Services_JSON이라는 링크를 클릭하여 다운로드 페이지로 이동합니다.


 

 
이동하셔서 보시면 Links에서 가장 위에있파일을 클릭합니다.

 PEAR package file (.tgz) 클릭하셔서 다운로드 받으신후 압축을 풀어주시면 압축파일중에

JSON.php라는 파일이 저희가 사용할 파일입니다.

 제가 받은 파일도 같이 공유드리겠습니다.

 위 절차가 귀찮으신분은 제가받은 파일을 받아서 사용하셔도 됩니다.

  



 이제 기본적으로 사용할 준비는 끝났습니다.

 그럼이제 소스에서 JSON.php를 추가하주시면 됩니다.

 추가하는 방법은 우선 저는 이전에 있던파일과 같은 경로를 넣겠습니다. 

 

 
그리고 이전에 만들었던 index.php를 수정해주시면 됩니다.



 이전 PHP 5.2 이후버전에서는 json_decode 라고 호출해주면 됬지만

이번에는 라이브러리를 가져온것이기때문에 소스내에서도

require_once를 해주어야 합니다.

 require_once('JSON.php');
 
그리고 실제로 사용하기위해서 new 선언을 해주었습니다.
   $json = new Services_JSON(); 
 
이제 json_decode를 실제로 사용하기 위해서 호출해주셔야되는데

decode는 현재 위치에 있는것이 아니라 방금 선언한

$json에 있는것이고, 명령어는 json_decode가 아니라 decode 입니다.
   $json->decode(타겟, true); 


 아래와 같은 방법으로 사용해주시면 됩니다.
    require_once('JSON.php');
$json = new Services_JSON();
$json->decode(타겟, true);
 
 JSON  사용하는 방법은 여기까지입니다.

 하지만 JSON.php에서는 Object를 읽지 못하게됩니다.

 이럴때는

 

PHP 5.2 이하버전 Object 에 json_decode 사용하기.



 
에서 방법확인하시면 됩니다.





 그럼, 수고하셨습니다.


 ^ㅡ^

  1. 허걱 2011.05.23 17:08 신고

    감사합니다. ㅠㅠ
    정말 초보를 배려하는 자세한 설명 ㄳㄳ


 안녕하세요 생존본능입니다.

 작업을 하다보면 PHP에서는 한글 깨짐 현상을 종종 확인할수있는데요,

  그 이유는 euc-kr 로 설정되었기 때문입니다.


 이 경우에는 강제로 코드에서 UTF-8 로 변경해주시면 됩니다.

 

 변경방법은 html 코드의  <head></head> 나 <body><body> 사이에 넣어주시면 됩니다.

 그리고 html 코드를 사용하지않고 그냥 php코드만 있는경우에는 그냥 최상단에 넣어주시면 됩니다. 

<meta http-equiv="Content-Type" content="text/html" charset="utf-8"> 


 위처럼 하면 정상적으로 한글이 보여지게됩니다.


 감사합니다.^^ 

+ Recent posts