pythonではてなAPIを使って記事を投稿する
色々認証方式があるけど一番簡単なBASIC認証でやる
template = """<?xml version="1.0" encoding="utf-8"?> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app"> <title>{title}</title> <author><name>name</name></author> <content type="text/plain">{body}</content> <updated>{date}</updated> <app:control> <app:draft>no</app:draft> </app:control> </entry> """ # ここでインデントするとprintで出力したときにおかしくなる。 # templateの{title}, {body}, {date}にそれぞれ値を入れる。 # nameは変えたりして試してみたけど特に違いがわからなかったのでそのままにしてる。 # dateの書式はdatetime.datetime.strftime('%Y-%m-%dT%H:%M:%S')でいける uri = 'https://blog.hatena.ne.jp/{hatena_id}/{blog_id}/atom/entry' # このブログで言うとhatena_id = 'arark', blog_id = 'arark.hatenadiary.jp' (ドメイン名) api_key = '<api_key>' # 設定に書いてある import requests from requests.auth import HTTPBasicAuth res = requests.post(uri, auth=HTTPBasicAuth(hatena_id, api_key), data=template)
これでOK