개요
워드프레스 블로그에 자동으로 콘텐츠를 업로드하기 위해 REST API를 사용하게 된다. REST API를 쓰기 위해서는 인증을 위해 이용자 ID와 Password가 필요하다. 이 중 ID는 워드프레스 로그인 ID이다. Password는 추가 사용자 등록을 통해 받는다. (워드프레스 로그인 비밀번호가 아니다.)
이 글을 통해 WordPress Rest API 사용을 위한 User Password 발급 받는 법과 실제 발행에 사용되는 파이썬 코드를 공유하고자 한다.
User ID
RestAPI 사용시 필요한 UserID는 워드프레스 로그인 아이디를 사용하면 된다.
User Password
User Password를 발급받기 위해서는 현재 로그인 계정 외 추가 프로필 추가를 통해 가능하다. 아래에 방법을 상세히 작성하였다.(이 방법은 워드프레스가 SSL 적용이 되어 https 주소를 사용하고 있을 때 사용 가능하다.)
새 사용자 추가 방법(https 주소의 경우)
워드프레스 관리자 페이지에서 사용자 > 프로필 메뉴로 들어간다.
프로필 메뉴로 들어가서 맨 아래쪽으로 스크롤해서 보면, ‘응용프로그램 비밀번호’ 설정하는 부분이 나온다. 여기에서 password를 발급받는다.
먼저 새 응용프로그램 이름을 적는다. 아무것이나 적어도 무방하다.
그 다음 새 응용 프로그램 비밀번호 추가 버튼을 누른다.
그럼 위 이미지처럼 24자리와 공백으로 이루어진 비밀번호가 부여된다. 이걸 복사해서 다른 곳에 옮겨둔다. 만약 잃어버려도 상관없다. 새로 만든 프로그램 이름을 삭제하고 새로 발급받으면 된다.
이 비밀번호를 이용해 REST API를 사용할 수 있다.
파이썬 워드프레스 REST API로 글 발행하는 코드
앞서 확인한 ID와 PASSWORD로 REST API를 사용할 수 있다. 기본은 다음과 같다.
user_ = WP_ID # 앞에서 확인한 User ID
pass_ = WP_PW # 앞에서 확인한 User Password
WP_URL = "https://adad.com" # 발행할 워드프레스 메인 주소
payload = {
"status": "publish", # 즉시발행:publish, 임시저장:draft
"slug": slug, # URL 슬러그
"title": title, # 포스팅 제목
"content": content, # 포스팅 본문
"categories": category_ids # 발행할 카테고리 고유 번호
}
res = requests.post(urljoin(WP_URL, "/wp-json/wp/v2/posts"),
data=json.dumps(payload),
headers={'Content-type': "application/json"},
auth=(user_, pass_))
if res.ok:
print(f">>> 포스팅 발행 성공")
else:
print(f">>> 포스팅 발행 실패 code:{res.status_code}")