워드프레스 API 자동 글쓰기 with python

워드프레스를 사용하는 이유 중 가장 큰 부분은 발행할 수 있는 글 제한이 없다. 이런 장점을 극대화 하는 방법중 하나가 자동 글쓰기 기능을 활용하는 것이다. 자동 글쓰기를 활용하기 위해서는 API를 사용해야된다. 1. API 활용하기 위한 초기 세팅법 2. 파이썬 활용 순서로 글을 진행하겠다.

워드프레스 API 세팅

  • 워드프레스 로그인, API 전용 계정 등록하기, API 접근 토큰 발행하기 순서로 구성된다.

API 전용 계정 등록하기-사용자 추가

  • API 전용계정 등록하기 위해 워드프레스를 로그인 한 상태에서 사용자 클릭!
  • 사용자 -> 모든 사용자 클릭!
  • 모든 사용자 -> 새로 추가 클릭!

API 전용 계정 등록하기-사용자 정보 입력

  • 사용자명(필수) 에 원하는 이름으로 작성 ex) API_id
  • 이메일(필수) 에 사용하는 이메일 작성 ex) API_id@naver.com
  • 비밀번호 수정 또는 그대로 사용
  • 마지막으로 새 사용자 추가 클릭!

API 접근 토큰 발행하기

  • 생성된 사용자 클릭!
  • 밑으로 스크롤 다운!
  • 응용프로그램 비밀번호 -> 새 응용 프로그램 이름 작성 후 비밀번호 추가!

파이썬 활용

  • 파이썬을 활용해서 기본적으로 포스팅할 수 있는 코드와 예약발행, 테그 입력 등의 기능도 설명한다.

기본 코드

  • 이 코드를 사용하면 기본적으로 워드프레스에 자동으로 글이 포스팅 된다.
#
#
#  2023.01.23 by.autoprogram
#
#
# --------- header -----------
import json
import requests
from urllib.parse import urljoin
from datetime import datetime
# --------- variable -----------
url = 'https://temp.co.kr/'  # home page link
wpMail = 'temp@gmail.com'  # mail ID
wpPW = '6EQI _ _ _ _ _ _ _ _ j17q ViRh _ _ _ _' # account API token
status = 'draft' # choose one publish or draft 
slug = 'python-auto-post-rest-api-test' 

title = 'here is the title' 
content = 'here is the content' 
category = [1] 
tag = [1] 


payload = {"status": status,
            "slug": slug,
            "title": title,
            "content": content,
            "date": datetime.now().isoformat(),
            "categories": category,
            "tags": tag}
# ---------- function -----------
res = requests.post(urljoin(url, "wp-json/wp/v2/posts"),
                    data=json.dumps(payload),
                    headers={'Content-type': "application/json"},
                    auth=(wpMail, wpPW))
# ---------- status -------------
if res.ok:
    print("success code:{res.status_code}")    
else:
    print(f"fail code:{res.status_code} reason:{res.reason} msg:{res.text}")

기본 코드 – 예약하기

  • 30분 또는 1시간 뒤에 예약 발행하기 위해서는 payload 부분을 다음과 같이 수정하면 된다.
rigtnow=datetime.now()
after30min=rigtnow+datetime.timedelta(minutes=30)
after1hour=rigtnow+datetime.timedelta(hours=1)
payload = {"status": status,
            "slug": slug,
            "title": title,
            "content": content,
            "date": rightnow,
            "categories": category,
            "tags": tag}
5X

2 thoughts on “워드프레스 API 자동 글쓰기 with python”

Leave a Comment