43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
import os
|
|
from dotenv import load_dotenv
|
|
import json
|
|
import requests
|
|
from urllib.parse import urljoin
|
|
from datetime import datetime
|
|
|
|
# .env 파일에서 API 키 로드
|
|
load_dotenv(r'./.env.dev')
|
|
|
|
wp_url = os.getenv('WP_URL')
|
|
wp_usr = os.getenv('WP_USERNAME')
|
|
wp_key = os.getenv('WP_API_KEY')
|
|
status = 'draft' # 즉시발행 publish, 임시저장 draft
|
|
# slug = 'input your slug'
|
|
|
|
title = '파이썬 자동포스팅'
|
|
content = 'html 호출 연동 필요.' # 연결만하면됨 테스트 완료.
|
|
category_id = [2] # 카테고리 아이디
|
|
# tag_ids = [21] #태그아이디
|
|
media_id=None #이미지 업로드를 제외 None
|
|
|
|
payload = {
|
|
"status": status,
|
|
"title": title,
|
|
"content": content,
|
|
"date": datetime.now().isoformat(), # YYYY-MM-DDTHH:MM:SS
|
|
"categories": category_id
|
|
}
|
|
if media_id is not None:
|
|
payload['featured_media'] = media_id
|
|
|
|
|
|
|
|
result = requests.post(urljoin(wp_url, "wp-json/wp/v2/posts"),
|
|
data=json.dumps(payload),
|
|
headers={'Content-type': "application/json"},
|
|
auth=(wp_usr, wp_key))
|
|
|
|
if result.ok:
|
|
print(f"성공 code:{result.status_code}")
|
|
else:
|
|
print(f"실패 code:{result.status_code} reason:{result.reason} msg:{result.text}") |