안녕하세요 오랜만에 이 블로그에 글을 쓰게 되었습니다. 오늘은 페이스북 자동포스팅을 위해 페이스북 페이지만들기 부터 페이스북 페이지 ID 알아내기 그리고 페이스북(facebook) API키 발급을 통해 API 사용방법을 알아보도록 하겠습니다. 사실 요즘 자동포스팅관련하여 많은 코드를 짜고 있는데요 대부분 python requests 를 사용하여 패킷 분석 후 post, get 방식의 코딩을 통해 포스트를 하고 있습니다. 하지만 이러한 수고없이 API 를 사용하면 좀 더 쉽게 코딩이 가능합니다. 그렇지만 제약들이 좀 있고 API 를 통해 토큰 받는 과정이 처음하시는 분들에게는 어렵기 때문에 이것을 글로 남겨 도움을 드리고자 합니다.
페이스북 계정 및 페이지 만들기
페이스북 페이지 만드는 것을 목표로 먼저 페이스북 가입에 대해 알아보겠습니다. 검색엔진을 통해 페이스북 주소로 들어가게 되면 "새 계정 만들기"라는 문구를 보실 수 있습니다. 이것을 클릭하여 계정에 가입을 진행합니다
중간 인증 받는 과정을 거치고 몇단계를 더 거치면 페이스북 가입이 완료 됩니다. 그런다음 아래의 플로우에 따라 페이지 만들기 페이지로 이동하여 페이지의 내용을 꾸며 줍니다.
페이스북 페이지 번호 알아내기
페이스북 페이지에는 ID 가 존재합니다. 우리가 페이스북 페이지에 자동 포스팅되게 하기 위해서는 이 ID 를 알아내야 하는데요. 제가 알아낸 방법은 좀 과정이 어렵기 때문에 혹시나 다른 더 간편한 방법을 아신다면 댓글을 달아주시면 다른분들에게 도움이 될 것 같습니다.
페이스북 페이지 ID를 알아내는 방법은 위의 플로우를 따라가시면 됩니다.
1. 페이지 정보
2. 페이지 투명성
3. 모두보기
4. 광고 라이브러리로 이동
5. 브라우저 창에 view_all_page_id 에 적혀 있는 ID 를 확인
⁕ 추후 자동 포스팅에 사용이 되니 따로 저장을 해두시기 바랍니다.
페이스북 개발자 등록 및 앱등록
페이스북 API 를 이용하기 위해서는 페이스북 API 키 발급이 되어야 합니다. 먼저 아래의 사이트를 방문해 보겠습니다.
https://developers.facebook.com/
해당 페이지에 들어가면 메인 페이지에서 "시작하기"를 눌러줍니다.
여기까지 개발자에 대한 확인 및 인증과정입니다. 다음으로는 우리가 작업할 앱을 만들어 보겠습니다. 앱을 만들때의 주의점은 "비즈니스 계정으로 전환"을 해야 한다는 것입니다. 꼭 잊지말고 비즈니스 계정으로 앱을 만드시기 바랍니다.
페이스북 API 키 발급 (장기 - 약 2개월)
여기까지 완료가 되었다면 우리가 만든 앱이 왼쪽 상단에 리스트에 보일 것입니다. 자 이제 해당 앱에서 사용할 API 의 권한을 받기 위해 [도구]-[그래프 API 탐색기]를 눌러줍니다.
그러면 아래와 같이 API 에 대한 토큰 관리 및 토큰을 이용한 API 테스팅을 할 수 있는 화면이 나오게 됩니다.
그럼 다음으로는 오른쪽에 "사용자 또는 페이지"라고 되어 있는 부분에서 "페이지 액세스 토큰 받기"를 눌러줍니다.
그러면 페이지와 앱을 연결하는 부분이 나오는데 이 과정을 거쳐 페이지와 앱을 연결해 줍니다 중간 과정에서 해당앱의 API 권한 등의 정보를 확인할 수 있습니다.
처음 페이지와 앱을 연결하게 되면 아래와 같이 두가지의 권한만을 받게 되는데 우리는 posting 을 할것이기 떄문에 추가적인 권한을 더 신청한 후 위와 동일한 과정의 앱과 페이지의 연결 과정을 다시금 수행하시면 권한이 추가가 됩니다.
권한을 추가하는 화면은 아래와 같습니다. "옵션 x 개 선택됨"을 눌러 원하는 권한을 추가해주시면 됩니다.
내가 추가한 권한은 아래와 같은 권한을 받았습니다.
권한 추가 후 "Generate Access Token" 버튼을 누르게 되면 다시금 원하는 권한이 앱과 페이지에 연결과정에서 추가가 되게 됩니다. 그래서 얻은 토큰은 아래와 같습니다.
하지만 이 토큰의 경우 만료되는 시점(해당 페이지에 있는 토큰의 경우 약 1시간 가량의 토큰 제한 시간이 있음)이 너무 짧기 때문에 아래와 같이 느낌표 버튼을 눌러 그 내용창을 열어봅니다.
그럼 아래와 같은 창이 보이는데 여기서 "액세스 토큰 도구에서 열기"를 눌러줍니다.
그럼 액세스 토큰 디버거가 나오게 되는데 여기하단에 "액세스 토큰 확장"을 눌러서 장기 토큰(약 2개월)을 발급 받으시면 됩니다.
페이스북 API 키 발급 (영구)
위에까지 단기와 장기 토큰에 대해 알아보았습니다. 그런데 장기 토큰이라고 해봐야 2개월밖에 사용을 못하기 때문에 우리는 영구 토큰을 알아봐야 합니다.
(앞서 살펴봤던 그래프 API 탐색기에서 액세스 토큰 옆 느낌표를 눌렀을때 나오는 화면에서 발급만료일을 확인해 볼 수 있음)
먼저 해야 할 일은 [그래프 API 탐색기] 에 들어가서 아래의 플로우대로 진행하시면 됩니다.
https://developers.facebook.com/tools/explorer
1. 앞서 받았던 장기(2개월) 토큰을 아래의 화면 1번에 붙여넣는다.
2. Facebook 앱이 맞게 선택이 되었는지 확인합니다.
3. 페이지 아이디를 이용하여 [페이지아이디?fields=access_token] 을 그래프 API 탐색기 상단 창에 적는다.
4. 제출을 클릭해 준다.
5. 결과로 나온 부분에서 access_token 값이 "영구토큰" 이다.
그럼 이게 장기토큰인지 확인하는 방법은? 무엇인가? 에 대한 질문은 대한 답은 API 탐색기에서 액세스 토큰 옆 느낌표를 눌렀을때 나오는 화면에서 발급만료일을 확인하면 된다. 아래의 그림과 같이 만료일이 "받지않기"로 되어 있습니다.
⁂ 개인적인 경험: 영구토큰만 동작을 했고 단기, 장기토큰은 아래와 같은 에러이슈가 있었습니다. 그래서 이 글을 보시는 분들도 영구토큰까지 등록 후 이용하시기 바랍니다.
C:\ProgramData\Anaconda3\python.exe Z:/facebook/fb_write_api_sample.py {"error":{"message":"(#200) If posting to a group, requires app being installed in the group, and \\\n either publish_to_groups permission with user token, or both pages_read_engagement \\\n and pages_manage_posts permission with page token; If posting to a page, \\\n requires both pages_read_engagement and pages_manage_posts as an admin with \\\n sufficient administrative permission","type":"OAuthException","code":200,"fbtrace_id":"AFuvffLx2ijHs5u9tUxP-kL"}} 종료 코드 0(으)로 완료된 프로세스 |
페이스북 페이지 자동포스팅 샘플(python)
페이스북 페이지 자동 포스팅을 위해서는 우선 앞서 알아보앗듯이 페이지에 대한 ID 가 필요하고 액세스 토큰이 필요합니다. 이 두가지를 다 얻었으니 메시지와 샘플로 링크 주소가 있는 샘플을 작성해 보도록 하겠습니다.
import requests
#Your Access Keys
page_id = 12345678 ## '' 표시 없이 숫자로 페이지 ID 를 적어준다
# facebook_access_token = '' ## '' 표시 안에 영구 토큰을 넣어준다
msg = 'test massage' ## 원하는 메시지를 적어줌
post_url = 'https://graph.facebook.com/{}/feed'.format(page_id)
payload = {
'message': msg,
'link': 'https://bltly.link/2obQ6P5', ## 원하는 링크를 적어줌
'access_token': facebook_access_token
}
r = requests.post(post_url, data=payload)
print(r.text)
더 자세한 API 사용방법을 찾아보길 원한다면 아래의 링크를 참고해 주세요 (정말 상세히 설명되어있음)
https://developers.facebook.com/docs/pages/publishing/
모두 따라오시느랴 수고하셨습니다. 만약에 안되신다면 아래의 오픈방으로 연락주시기 바랍니다.
다양한 플랫폼에서 자동화를 하고싶으신 분들은 아래의 오픈방(무료코드 및 무료강의 제공)을 통해 이야기 나누고 있습니다. 관심있으신 분들은 함께해요!!! (코드 0123을 입력하고 들어오세요!!!)
https://open.kakao.com/o/gXPgJC9d
다루는 주제들 : 티스토리, 네이버블로그, 워드프레스, 유튜브, 인스타, 트위터, 페북, 숏폼, 메타플랫폼, 카카오뷰, 쿠팡파트너스, 뉴스픽, 애드픽, 오아시스 등 다양한 주제로 자동화에 대해 같이 이야기 하고 있습니다.
'Digital Utilization > Crawling' 카테고리의 다른 글
네이버 공감 자동 클릭 프로그램 - 코드 공유 (0) | 2021.06.15 |
---|