====== Facebook API 포스팅 가져오기 #1 API 사용 ====== {{tag>blogs 페이스북API Facebook API 자동화}} ===== Intro ===== 페이스북을 통해서 포스팅을 하게 되면, 여러 사람들이 볼 수 있고 모바일 앱을 이용해 편하게 사용할 수 있긴 하지만, 내 생각과 자료들이 페이스북 플랫폼에 남게 되고 과거 글은 찾아보기 힘들어 불편한 점이 있습니다. 그래서 주기적으로 페이스북 포스팅들을 블로그에 Archive하기 위해 API를 사용하여 블로그에 저장하는 것을 시도해 보았습니다. 해당 결과물은 [[blog:facebook_posting|Facebook Posting Archive]] 에서 보실 수 있습니다. - [[blog:facebook_api_get_posting_1_api|API 사용]] - [[blog:facebook_api_get_posting_2_python|Python 으로 데이터 정리]] - why Python? - [[blog:facebook_api_get_posting_3_image_ftp_write|Python 으로 데이터 업로드하기]] - Image다운, FTP 및 웹제어 - [[blog:facebook_api_get_posting_4_php|PHP에서 최신 현황 받아오기]] - PHP Json 처리 순으로 진행해 보도록 하겠습니다. ===== App 만들기 ===== [[https://developers.facebook.com/tools|페이스북 개발자도구 사이트]] 에서 '그래프API 탐색기'로 들어갑니다. {{blog:pasted:20200217-230109.png?600}} 페이스북 아이디로 로그인을 하면, App을 만들라고 합니다. 이름은 아무것으로나 정하셔도 됩니다. {{blog:pasted:20200217-224152.png?400}} ===== Token 발급 ===== App이 만들어졌으면, 다시 우측 상단의 도구>그래프 API 탐색기에 들어가면 다음과 같은 화면이 나타납니다. 우측에 있는 App이 방금 만든 앱인지 확인하시고, '사용자 또는 페이지' 를 클릭한 후, 페이지 액세스 토큰 받기를 선택합니다 {{blog:pasted:20200217-231110.png?600}} 원하는 페이지를 선택하시고, 다른 메시지는 무시하셔도 됩니다. (다른 권한에 대한 문제인데, 포스팅 가져오기는 됩니다.) {{blog:pasted:20200217-231030.png?250}} 권한 추가에서 다음의 옵션 두개를 선택한 후 토큰 받기를 누르면 토큰이 생성됩니다. ''user_posts, pages_show_list'' {{blog:pasted:20200217-230244.png?600}} 우측 상단의 '제출' 버튼을 눌러서 다음과 같이 페이지 id와 이름이 나오면 일단 성공! {{blog:pasted:20200217-224545.png?600}} ===== 필요한 필드 검색 ===== 좌측에 있는 필드 검색에서 필요한 정보를 찾아오도록 합니다. 저는 페이지에 제가 올린 포스트들을 받아오고 싶기 때문에 me/fields= 대신에 [페이지id]/posts?fields= 를 통해서 받아오도록 하겠습니다. 다음은 제가 필요한 필드들을 정리한 쿼리입니다. [페이지id]/posts?fields=created_time,full_picture,icon,id,message,message_tags,picture,attachments.limit(10){url,media,unshimmed_url,media_type,title,description,description_tags,subattachments,type,target},actions&//**limit=100**// &pretty=0 * 페이지 id는 아까 전 쿼리를 통해 볼 수도 있고, 페이스북 페이지 정보란에도 있습니다. * limit=n 으로 출력 개수를 조정할 수 있습니다. (최대 100개) * 100개가 넘어가면 결과 값에서 'paging': {'next': 다음URL, 'previous': 이전URL} 으로 구분이 가능합니다. 위 코드를 입력하거나, 왼쪽 필드검색에서 찾아서 '제출'을 누르면 아래와 같이 제 포스팅 정보가 나옵니다. {{blog:pasted:20200217-231316.png?600}} ===== URL 받아오기 ===== 결과 창 아래의 ' 코드 받기'를 클릭하시면 여러가지 언어에서 쓸 수 있는 코드가 나옵니다. 저는 URL을 사용할 예정이므로 cURL 을 선택. URL은 ''[[https://graph.facebook.com/v6.0/|https://graph.facebook.com/v6.0/]]{쿼리}&access_token={액세스 토큰}'' 형식으로 이루어져 있습니다. {{blog:pasted:20200217-230401.png?600}} ===== Token 유효기간 연장 ===== 지금 화면에서 보던 토큰은 2시간 후 만료되는 토큰입니다. 우측 하단 '액세스 토큰' 옆의 (i) 버튼을 클릭하면 아래와 같이 만료시간이 나옵니다. 비즈니스 계정 인증 등을 통해야 다른 권한을 받거나 기간이 긴 토큰이 나오는 것 같은데, Official 문서를 제출하고 계약서를 제출해야 한다는 것 같습니다. {{blog:pasted:20200217-230506.png?600}} {{blog:pasted:20200217-224835.png?300}} 이 토큰을 2달 정도 쓸 수 있는 토큰으로 바꾸는 방법을 알아보도록 하겠습니다. 위 화면에서 '액세스 토큰 도구에서 열기'를 누르면 액세스 토큰 디버거 창이 나옵니다. 해당 화면에서 맨 아래쪽에 있는 '액세스 토큰 확장'을 누르면, 아래와 같이 2달 정도 사용할 수 있는 토큰이 발급됩니다. {{blog:pasted:20200217-224930.png?600}} 번거롭긴 하지만, 2달 정도는 쓸 수 있겠습니다. ===== 다음 ===== 기타 권한 또는 토큰 기간을 좀 더 늘리는 것은 좀 더 실험을 해봐야 겠습니다. 우선 목적은 비정기적으로 포스팅을 업데이트 하는 것이기 때문에 이제 파이썬에서 이 데이터를 정리해 보도록 하겠습니다. [[blog:facebook_api_get_posting_2_python|다음편 : Python 으로 데이터 정리]] ---- ===== Reference ===== [[https://tonhnegod.tistory.com/99|https://tonhnegod.tistory.com/99]] : 이전버전의 그래프API 탐색기 사용법이 설명되어 있습니다. ~~DISCUSSION~~