웹 개발 & 정보

웹 사이트에 내 페이스북 가져오기 facebook graph api

Rozera 2020. 11. 11. 22:06
반응형

 

웹사이트에 내 페이스북을 가져오는 방법에 대해서는 아래와 같이 이전에 썼던 글이 있습니다.

 

페이스북 그래프 API로 내 페이스북 글 가져오기 (Graph api)

- 2019. 09. 04 추가 - 포스팅 내용을 조금 수정하였습니다. 테스트 결과 포스팅 내용을 따라하면 페이스북 게시물이 제대로 출력되고 있습니다. - 2018. 05. 31 추가 - 현재 페이스북 api 정책 변경으

tonhnegod.tistory.com

다만 이 글은 너무 오래전에 썼던 것이기도 하고, 변경된 내용도 몇 가지 있어 최신으로 업데이트합니다.

(20-11-11 업데이트)

 

포스팅을 하기 전에 테스트 페이지를 열어보았는데, 내 페이스북 게시글이 문제없이 잘 가져와지고 있습니다.

차근차근 잘 따라하시면 문제없이 구현 가능하리라 생각됩니다.

 

단, 선행 조건이 있는데 내 페이스북 게시물의 공개 범위가 '전체'로 되어있어야 한다는 점입니다.

공개 범위 설정하는 방법은 간단하므로 텍스트로 알려드리겠습니다.

페이스북 사이트 > 계정(우측 상단) > 공개 범위 확인 > 내가 공유하는 게시물을 볼 수 있는 사람 > 향후 게시물, 스토리를 전체 공개로 변경

 

 

그럼 이제부터 개발자 페이지 세팅과 내 페이스북 게시글의 데이터 가져오는 방법을 알아보겠습니다.

 

1. 페이스북 개발자 페이지 (developers.facebook.com) > 앱 만들기 > 연결된 환경 구축 선택 > 계속

사실 여기 4가지 중 선택 기준은 잘 모르겠습니다.

연결된 환경 구축 또는 기타가 적합할 것 같다는 개인적인 생각입니다.

저는 연결된 환경 구축으로 했습니다.

 

2. 앱 이름 입력, 이메일 주소 입력 > 앱 만들기

비즈니스 관리자 계정은 필요 없습니다.

앱이 성공적으로 만들어졌다면 더 이상 앱에서는 건들 것이 없습니다.

 

3. 그래프 API 탐색기 접속 (developers.facebook.com/tools/explorer) > 앱 선택

Facebook 앱 부분에서 1~2번에서 만들었던 앱을 선택합니다.

 

4. Generate Access Token 버튼을 눌러 액세스 토큰을 생성합니다.

여기서 생성되는 액세스 토큰의 유효 기간은 2시간입니다.

 

 

5. 제출 버튼을 눌러 id와 name이 제대로 나오는지 확인해봅니다.

{
  "id": "숫자",
  "name": "이름"
}

이런 형태로 뜬다면 성공입니다.

 

6. 권한 추가 > User Data Permissions > user_posts 추가

내 페이스북 게시글만 가져올 것이기 때문에 다른 권한은 딱히 필요하지 않은 것 같습니다.

 

7. 액세스 토큰을 갱신합니다. (Generate Access Token 버튼 클릭)

갱신을 하여도 여전히 유효기간 2시간짜리 액세스 토큰입니다.

액세스 토큰 기한은 2달로 연장 (최대 2달인 듯합니다) 가능한데, 방법은 조금 더 뒤에 알려드리겠습니다.

 

8. 내 페이스북 게시글의 데이터가 정상적으로 나오는지 확인해봅니다.

{id}/feed?fields=attachments,message,picture,link,name,caption,description . . . 입력 후 제출 클릭.

여기서 id는 5번 과정에서 확인했던 숫자값입니다.

fields의 값들에 대해서는 developers.facebook.com/docs/graph-api/reference/v8.0/page/feed 페이지를 참조하세요.

 

9. 유효기간 2시간짜리 액세스 토큰을 2달로 연장하는 방법

ⓘ 아이콘을 클릭하면 액세스 토큰 정보창이 뜨는데, 거기서 '액세스 토큰 도구에서 열기'를 클릭합니다.

 

10. 액세스 토큰 디버거 페이지에서 '액세스 토큰 확장'을 클릭합니다.

 

그러면 아래와 같이 연장된 액세스 토큰이 발급되었음을 확인할 수 있습니다.

그런데 액세스 토큰이 뒤에 . . . 형태로 끊겨있어 제대로 확인이 안 됩니다.

(요소 검사나 개발자 도구 등을 통해 확인이 가능하지만 귀찮으므로)

디버그 버튼을 누릅니다.

 

11. 연장된 액세스 토큰을 획득합니다.

여기서 액세스 토큰은 따로 복사해두시는 것을 추천드립니다.

그럼 다시 페이스북 개발자 페이지로 갑니다.

 

12. 코드 받기

그래프 API 탐색기에서 연장된 액세스 토큰으로 변경하고 제출을 클릭하여 데이터가 제대로 나오는지 확인합니다.

데이터가 제대로 나온다면 아래의 코드 받기 버튼을 클릭하여 데이터를 얻을 수 있는 코드를 획득합니다.

 

전 SDK는 사용하지 않을 거라 패스하고 cURL 탭으로 갔습니다.

코드 받기 > cURL 탭에서 얻는 주소는 아래와 같은 형태입니다.

https://graph.facebook.com/v9.0/{id}/feed?fields=attachments%2Cmessage%2Cpicture%2Clink%2Cname%2Ccaption%2Cdescription&access_token={access_token}

해당 주소를 웹브라우저 주소창에 입력해도 데이터가 가져와집니다.

 

몇 줄의 php 코드로 간단하게 데이터를 가져올 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
<?php
$curl = curl_init("https://graph.facebook.com/v9.0/{id}/feed?fields=attachments%2Cmessage%2Cpicture%2Clink%2Cname%2Ccaption%2Cdescription&access_token={access_token}");
 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($curl);
curl_close($curl);
 
$result = json_decode($resulttrue);
print_r($result);
?>
cs

 

이제 입맛대로 가공하여 웹사이트에서 사용하시면 되겠습니다.

 

페이스북은 워낙 수시로 정책이 바뀌기 때문에 해당 포스팅의 정보가 언제 사용 불능이 될지 알 수 없습니다.

그런 경우 댓글로 알려주시면 빠르게 내용 업데이트하도록 하겠습니다.

 

반응형