Web
[페이스북]Access Token 만료 받지 않기
rairen
2020. 2. 19. 11:15
준비물
페이스북 개발자 계정
방법
1. 페이스북에 로그인
2. 페이스북 개발자 주소로 접속하여 '그래프 API 탐색기' 화면으로 이동
( 링크 : https://developers.facebook.com/tools/explorer/ )
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에서도 충분히 토큰 얻는게 가능합니다.
반응형