프로그램 개발서

[페이스북]Access Token 만료 받지 않기 본문

Web

[페이스북]Access Token 만료 받지 않기

rairen 2020. 2. 19. 11:15

준비물

페이스북 개발자 계정

 

방법

1. 페이스북에 로그인

2. 페이스북 개발자 주소로 접속하여 '그래프 API 탐색기' 화면으로 이동

   ( 링크 : https://developers.facebook.com/tools/explorer/ )

그래프 API 탐색기

3. 그래프 API 탐색기에서 필요한 정보 추출 ( 엑세스 토큰, ID )

    3-1. 엑세스 토큰은 화면 우측에서 Get Access Token을 눌러 새로 받을 수 있다.

    3-2. ID는 화면 내용에서 우측 상단에 제출 버튼을 누르면 좌측 내용에서 확인할 수 있다.

 

4. 엑세스 토큰을 장기 액세스 토큰으로 전환.

//fb_exchange_token타입 액세스 토큰 요청
$data = array(
        'client_id'         => '1829634413932089',
        'client_secret'     => '892ebb85a92d288794fabfb4ad6d22fa',
        'grant_type'        => 'fb_exchange_token',
        'fb_exchange_token' => '[엑세스 토큰]'
);
$url  = "https://graph.facebook.com/v6.0/oauth/access_token" . "?" . http_build_query($data);
$ch   = curl_init();                                 //curl 초기화
curl_setopt($ch, CURLOPT_URL, $url);               //URL 지정하기
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    //요청 결과를 문자열로 반환
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);      //connection timeout 10초
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);   //원격 서버의 인증서가 유효한지 검사 안함

$response = curl_exec($ch);
curl_close($ch);

$long_token = (array)json_decode($response);        //결과 값 출력
// $long_token['access_token'] 장기토큰
// $long_token['expires_in'] 만료기간
Array
(
    [access_token] => [장기 엑세스 토큰]
    [token_type] => bearer
    [expires_in] => 5119148
)

5. 토큰 만료 받지 않기

$data = array(
        'access_token'         => [장기 엑세스 토큰]
);
$url  = "https://graph.facebook.com/[그래프 API Version]/[ID]/accounts" . "?" . http_build_query($data);
$ch   = curl_init();                                 //curl 초기화
curl_setopt($ch, CURLOPT_URL, $url);               //URL 지정하기
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    //요청 결과를 문자열로 반환
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);      //connection timeout 10초
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);   //원격 서버의 인증서가 유효한지 검사 안함

$response = curl_exec($ch);
curl_close($ch);

$result = (array)json_decode($response);        //결과 값 출력
Array
(
    [data] => Array
        (
            [0] => stdClass Object
                (
                    [access_token] => [만료기간 받지 않은 토큰]
                    [category] => 
                    [category_list] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [id] => 
                                    [name] => 
                                )

                            [1] => stdClass Object
                                (
                                    [id] => 
                                    [name] => 
                                )

                        )

                    [name] => 
                    [id] => 
                    [tasks] => Array
                        (
                            [0] => 
                            [1] => 
                            [2] => 
                            [3] => 
                            [4] => 
                        )

                )

        )

    [paging] => stdClass Object
        (
            [cursors] => stdClass Object
                (
                    [before] => 
                    [after] => 
                )

        )

)

6. 사용하려는 API에서 토큰을 사용하면 끝!

 

 

※ PHP로 진행을 했으나 Javascript에서도 충분히 토큰 얻는게 가능합니다.

반응형