'허가요청'에 해당되는 글 1건

  1. 2011.06.21 [FaceBook 강좌] Ex02 페이스북 허가요청 받기. (16)
posted by 생존본능 2011.06.21 17:46
크리에이티브 커먼즈 라이선스
Creative Commons License


 



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


 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


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


 그럼 여기까지입니다.


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

신고

티스토리 툴바