「毎回ブログの画面開いてコピペめんどい」
ということで、はてなブログAPIで投稿する方法を試してみました!
とはいえまだ実用化という訳ではなく……
今回はGoogle Chromeの拡張で、API実行を試せる「Talend API Tester」を使って試してみました!
できること
これらのことができることを確認しました。
- ブログ記事の投稿(タイトル設定含む)
- 投稿日時の設定
- カテゴリの設定(複数可)
- 投稿/下書きの選択
できないこと
残念ながら、これらはできませんでした。
- アイキャッチの設定方法
- カスタムURL
- 記事の概要
- 高度なタイトル設定
- 予約投稿
もし「こうすればできるよ!」というものをご存知できたら、教えていただきたいです……
必要なもの
ダッシュボードから「設定→詳細設定」
下にスクロールしていき、「AtomPub」の欄まで行きます。
ここにある
- ルートエンドポイント
- APIキー
が必要となってきます。
試しに投稿する
「Talend API Tester - Free Edition」で試す。
入力項目
Talend API Testerでの入力項目はこちら。
画像と表の番号が対応しているので、合わせてご覧ください。
No | 項目 | 内容 |
---|---|---|
1 | METHOD | POST |
2 | SCHEME | ルートエンドポイント+"/entry" |
3 | HEADERS(左枠) | Content-Type |
4 | HEADERS(右枠) | application/xml |
5 | BODY | XML(ブログ内容など) |
HEADERSは入力項目がなければ、「Add headerボタン」で追加することができます。
POSTするXMLのサンプル
今回こんなXMLを使いました。
<?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> <author><name>lis</name></author> <content type="text/x-markdown"> # 見出し1 本文 </content> <updated>2019-10-16T11:30:00</updated> <category term="autoUpload" /> <app:control> <app:draft>no</app:draft> </app:control> </entry>
送信
初めて送信するとき、「Sendボタン」を押した後
- ユーザ名
- パスワード
を聞かれます。
ここで入力するのは
項目 | 入力値 |
---|---|
ユーザ名 | はてなのユーザ名 |
パスワード | 「必要なもの」で取得したAPIキー |
です。
パスワードが、はてなのパスワードではないので、注意しましょう。
アプリとAPIとの使うものの関係で、言い回しが違っているせいですね。
投稿した結果
実行したらこんな感じで投稿されました。
意図したとおりにはなっているものの、未来に投稿された記事となっています。
このように未来を指定しても、ブログ自体には反映されてしまいます。
なので予約投稿になるということはありません。
注意しましょう。
本文はインデントのスペースに注意
本文にあたるcontent内は、インデントのスペースに注意が必要です。
スペースを入れることで「先頭にスペースがある文」と認識されてしまいます。
「いや当たり前だろ(笑)」
と思うかもしれませんが、これによってMarkdownがMarkdownとして認識されなくなります。
例えば
# 見出し
と書いてしまうと、書式である「#」が認識されず「 # 見出し」という文になってしまいます。
複数カテゴリの設定
カテゴリはこの要素で設定しています。
<category term="category1" />
これを複数書くことで、複数カテゴリが設定できます。
<category term="category1" /> <category term="category2" />
参考
コチラを参考にしました。ありがとうございました!
あとがき
はてなブログAPIで投稿するを、Talend API Testerで試す!でした!
今後これを発展させて
「記事作成→投稿をして、あとはちょっと設定するだけ」
というようにできればと目論んでいます……
少しでも楽したい……
みなさんも良ければ試してみてください!