今後のスクレイピングに役に立ちそうなので備忘録です。
まずは、Application Passwords plugin プラグインをインストールします。
以下を作って、実行するとREST APIを経由して投稿することができます。
もちろん画像もOK。
REST APIで投稿
https://qiita.com/yuyu_rg/items/3a5dc686fe8f22ff0fcb
※user_id ってのは、投稿者のユーザIDね。
REST APIで画像を投稿
https://qiita.com/sapuri/items/cd6deffd5654f5786fc8
※画像はプログラムファイルを基点として指定
コードの控え
#coding: utf-8
import requests
import json
passward = "anCN 2JnY rcEu H2z4 JRi2 T4Fr" # 自分の環境に合わせて変更してください
user_id = "admin" # 自分の環境に合わせて変更してください
end_point_url ="http://xxx.xyz/wp-json/wp/v2/posts" # 自分の環境に合わせて変更してください
p_title = "APIからの投稿"
p_content = "内容のサンプル<br />サンプルあああああああ"
p_status = "draft"
payload = {
'title': p_title ,
'content' : p_content ,
'status' : p_status
}
headers = {'content-type': "Application/json"}
r = requests.post( end_point_url, data=json.dumps(payload) , headers=headers, auth=(user_id, passward) )
print(r)
import requests
user_id = ''
app_password = ''
end_point_url = 'http://example.com/wp-json/wp/v2/media'
image_path = '/path/to/image.jpg'
file_name = 'image.jpg'
headers = {
'Content-Disposition': f'attachment; filename="{file_name}"'
}
# load image file
f = open(image_path, 'rb')
img_data = f.read()
f.close()
response = requests.post(end_point_url, data=img_data, headers=headers, auth=(user_id, app_password))
# media_id = response.json()['id']

