블로거라면 반복적이고 비효율적인 작업 중 하나가 내 콘텐츠를 SNS에 배포하는 일이라는 점에 공감하실 겁니다. 이런 작업을 자동으로 페이스북에 포스팅할 수 있다면 정말 편리하겠지만, 보안 문제나 서버 비용 때문에 망설여지기 마련이죠. 물론 무료 자동 포스팅 서비스도 존재합니다. 하지만 최근 페이스북의 보안 정책이 강화되면서 제대로 작동하지 않거나 서비스 자체가 차단된 경우도 적지 않습니다.
또 한 가지 고민은 보안입니다. 외부 사이트에 내 따끈한 콘텐츠를 바로 전송하는 방식이 과연 안전한지 한 번쯤 생각해 보게 됩니다. 무료 서비스에는 나름의 구조와 이유가 있기 때문에, 내 콘텐츠와 계정 권한을 외부에 맡기는 방식은 신중하게 접근하는 것이 좋습니다.
그래서 오늘은 별도의 유료 서버 없이, 오직 구글 앱스 스크립트(GAS)와 자바스크립트만으로 보안 토큰을 직접 관리하면서 페이스북에 글을 자동 배포하는 ‘보안 중심 페이스북 자동화 포스팅 방법’을 소개해 보겠습니다.
이 방법은 크게 두 가지로 나눌 수 있습니다. 하나는 서버에서 직접 처리하는 방식이고, 다른 하나는 서버 없이 일반 블로그(예: 구글 블로그, 티스토리 등)에서 사용하는 방식입니다. 서버에서 운영하는 방식이 가장 안정적이고 보안 측면에서도 유리하지만, 플랫폼에서 제공하는 블로그를 운영 중이라면 적용하기가 다소 부담스러울 수 있습니다. 페이스북 SNS 공유를 위해 별도의 서버를 따로 임대하는 것도 현실적으로 쉽지 않은 선택이죠.
목차
페이스북 자동 포스팅 시스템, 서버 없이 구축하기
그래서 이번 글에서는 별도의 서버 없이도 운영할 수 있는, 일반 블로그 환경에서 적용 가능한 방법을 중심으로 알아보겠습니다.
페이스북 자동 포스팅을 위한 준비물
페이스북 자동 포스팅을 시작하기 위해 먼저 준비해야 할 것은 구글 계정입니다. 대부분 이미 가지고 계실 거라 생각하고 바로 진행하겠습니다. 필요한 준비물은 구글 시트, 구글 앱스 스크립트, 그리고 자바스크립트 코드 세 가지입니다.
1. 구글 시트 설정하기 (데이터베이스 구축)
구글 시트를 사용하는 이유는 데이터베이스처럼 활용하기 위해서입니다. 내가 작성한 최신 글을 관리하고, 이미 SNS에 배포한 콘텐츠와의 중복을 방지하기 위한 목적입니다. 예를 들어 이미 페이스북에 올린 글은 구글 시트에 표시해 두면, 이후 발행 시 중복 여부를 쉽게 비교하고 확인할 수 있습니다.
먼저 구글 시트 사이트에 접속한 뒤, 새 시트를 하나 만들고 이름은 관리하기 편하게 ‘URL 목록’처럼 간단하게 설정해 주세요. 시트를 활용하면 발행 이력이 남기 때문에 관리가 훨씬 수월해집니다.
2. 왜 ‘구글 앱스 스크립트’를 중간에 써야 할까요?
보통 티스토리 스킨에 자바스크립트를 직접 삽입하면, 누구나 F12(소스 보기)를 통해 내 페이스북 액세스 토큰을 확인할 수 있습니다. 이렇게 토큰이 노출되면 내 SNS에 광고 글이 올라가거나 계정이 제한되는 등의 문제가 발생할 수 있습니다. 그래서 보안을 고려하면 이런 방식은 신중하게 접근할 필요가 있습니다.
만약 별도의 서버를 운영하고 있다면 이런 노출 위험을 줄일 수 있어 일부 작업을 덜어낼 수 있지만, 일반 블로거에게는 구글 앱스 스크립트가 훌륭한 대안이 됩니다. 우리가 구축할 시스템은 ‘보안 프록시(Proxy) 구조’입니다.
- 티스토리: “이 글 제목이랑 링크 좀 올려줘!”라고 구글에 신호만 보냅니다. (보안 노출 0%)
- 구글 스크립트: 티스토리의 신호를 받아, 구글 서버 내부에 꽁꽁 숨겨둔 토큰을 꺼내 페이스북으로 최종 전송합니다.
이 방식을 쓰면 보안은 물론, 브라우저의 전송 차단(CORS) 오류까지 한 번에 해결할 수 있습니다.
3. 1단계: 구글 앱스 스크립트 설정 (나만의 서버 만들기)
먼저 페이스북 토큰을 안전하게 보관할 ‘금고’ 역할을 할 서버를 만듭니다. 구글 계정만 있다면 평생 무료입니다. 페이스북 토큰 생성 방법은 관련 방법을 참고해 주시기 바랍니다.
1. 시트 확장 프로그램 방식 (컨테이너 바인딩)
이 방식은 특정 구글 시트 안에서 스크립트 편집기를 여는 형태입니다. 스크립트가 해당 시트 파일에 부속물처럼 포함되어 있다고 이해하시면 됩니다. 가장 큰 특징은 ‘현재 열려 있는 시트’를 별도의 주소 입력 없이도 코드가 바로 찾아갈 수 있다는 점입니다. 덕분에 코딩이 훨씬 간결해지고 설정이 쉽다는 강력한 장점이 있습니다.
다만, 스크립트가 해당 시트에 종속되어 있기 때문에 시트 파일을 삭제하면 그 안에 작성한 코드도 한꺼번에 사라지는 위험이 있습니다. 또한, 다른 시트 파일에서 똑같은 기능을 쓰려면 코드를 일일이 복사해서 다시 붙여넣어야 하는 번거로움이 있습니다. 따라서 하나의 블로그를 운영하면서 해당 시트에 발행 기록을 차곡차곡 쌓는 단순한 관리 목적으로 사용하기에 가장 적합합니다.
2. 별도 사이트 접속 방식 (독립형 스크립트)
이 방식은 구글 시트와는 아무런 연관이 없는 독립된 파일로 스크립트를 생성하는 형태입니다. 마치 나만의 ‘전용 미니 서버’를 구축하는 것과 같습니다. 파일 자체가 독립되어 있으므로 특정 시트를 삭제하더라도 코드는 안전하게 보존되며 보안성이 더 높습니다. 또한, 하나의 스크립트 파일이 여러 개의 구글 시트나 다양한 블로그 플랫폼과 통신할 수 있어 확장성이 뛰어납니다.
하지만 독립적으로 존재하다 보니, 어떤 구글 시트에 데이터를 기록할지 코드가 스스로 알지 못합니다. 그래서 연결하고자 하는 구글 시트의 상세 주소(ID)를 코드 내에 직접 명시해 주어야 하는 초기 설정 과정이 필요합니다. 결과적으로 여러 개의 블로그 채널을 운영하거나, 보안을 강화하여 공용 자동화 시스템을 구축하고 싶을 때 선택하는 전문적인 방식입니다.
| 구분 | 시트 내 확장 프로그램 방식 | 독립형 스크립트 방식 |
| 연결성 | 해당 시트와 자동으로 연결됨 | 시트 ID를 코드로 연결해야 함 |
| 파일 관리 | 구글 시트 파일 안에 포함됨 | 구글 드라이브에 별도 파일로 존재 |
| 코드 복잡도 | 매우 단순함 (시트 호출이 쉬움) | 조금 복잡함 (주소 입력 필요) |
| 추천 용도 | 티스토리 발행 기록장 | 공용 API 서버, 대규모 자동화 |

- 구글 시트에서 [확장 프로그램] 메뉴 내 [Apps Script]를 누르면 바로 편집기로 이동합니다. 또는 구글 앱스 스크립트 사이트(script.google.com)에 접속한 뒤 ‘새 프로젝트’를 만들어 시작할 수도 있습니다..
- 스크립트 속성(Properties) 저장: 코드에 토큰을 직접 입력하면 노출 위험이 있으므로 보안 저장소에 보관합니다.
- 스크립트 편집기 왼쪽 메뉴에서 톱니바퀴 아이콘(프로젝트 설정)을 클릭합니다.
- 화면 아래 ‘스크립트 속성’ 섹션에서 [스크립트 속성 편집]을 누릅니다.
- 속성: FB_PAGE_ID / 값: 내 페이지 ID 입력
- 속성: FB_ACCESS_TOKEN / 값: 내 액세스 토큰 입력 후 저장합니다.
- 코드 작성: 기존 내용을 모두 지우고 아래의 수정된 코드를 복사해서 붙여넣으세요.
- 배포하기 (매우 중요):
- 오른쪽 상단 [배포] -> [새 배포]를 클릭합니다.
- 유형은 [웹 앱], 액세스 권한 보유자는 반드시 [모든 사용자(Anyone)]로 설정하세요.
- 배포 후 생성된 웹 앱 URL을 복사해서 메모장에 저장해 두세요. 블로그 자바스크립트에 적용 할거에요!
4. 2단계: 티스토리, 구글 블로그 스킨 편집 (자동 발송기 )
이제 내 티스토리 블로그가 글을 발행할 때마다 구글에 신호를 보내도록 설정할 차례입니다.
- 블로그 관리자 페이지 [꾸미기] -> [스킨 편집] -> [HTML 편집]으로 들어갑니다.
</body>태그 바로 직전에 아래 코드를 삽입하세요.
1) 블로그 JS 코드에서 수정할 1곳
블로그에 넣는 스크립트에서 이 주소만 바꾸면 됩니다.
https://script.google.com/macros/s/AKfycbxxxxxxxxxxxxx/exec2) 본문 선택자 (필요한 경우만 수정)
이 부분은 블로그 스킨마다 다릅니다
const contentArea = document.querySelector('.contents_style');5. 이 방식이 좋은 3가지 이유와 주의사항
① 완벽한 보안 환경 구축
다른 사용자가 내 블로그의 소스 코드를 아무리 뜯어봐도 보이는 것은 오직 구글 스크립트 주소뿐입니다. 실제 권한을 가진 페이스북 토큰은 구글 서버 안에 숨겨져 있어 절대 노출되지 않습니다.
② 중앙 집중식 관리 및 비용 절감
토큰이 만료되어 갱신해야 할 때도 스킨을 일일이 수정할 필요 없이 구글 스크립트 속성만 바꾸면 됩니다. 또한 Zapier나 IFTTT 같은 유료 도구 없이 무료로 운영 가능합니다.
③ 작동 시점 및 설정 팁
이 시스템은 글 발행 후 관리자인 내가 내 글을 한 번 클릭해서 읽는 순간 자동으로 배포됩니다. 방문자가 읽을 때는 작동하지 않아 안전합니다. 다만 페이스북 앱이 반드시 [라이브 모드]여야 하며 개인정보처리방침 URL이 등록되어 있어야 오류가 나지 않습니다.
