lisz-works

技術と興味の集合体

VS Code拡張!はてなブログ WSSEで投稿する!

【スポンサーリンク】

Visual Studio Code

VS Code拡張で、はてなブログにWSSE認証で投稿する方法です!

ステキなパッケージを発見したお陰で、一気に解決しました!

使ったパッケージ

今回sfpgmr/node-hatena-blog-api2を使用しました!

github.com

使い方についても、サンプルがREADMEにかかれているので超ステキ!

これのお陰で超楽に投稿ができたので感謝しかありません!

パッケージのインストール

インストールは

$ npm install https://github.com/sfpgmr/node-hatena-blog-api2

ちなみに昔のnpm installは「--save」というオプションが必要だったらしいですが、今はいらないらしいです。

実行すると、package.jsonのdependenciesに追加されます。

編集するファイル

extension.jsを編集していきます。

モジュールの読み込み

先頭付近にある

const vscode = require('vscode');

の下に

const Blog = require('hatena-blog-api2').Blog;

を追加します。

記事をアップする処理

記事をアップする処理を作っていきます。

このような関数を作ります。

function post() {
    let client = new Blog({
    type: 'wsse',
    userName: 'はてなブログID',
    blogId: 'ブログID',
    apiKey: 'APIキー'
    });
    // POST CollectionURI (/<username>/<blog_id>/atom/entry)
    client.postEntry({
        title: 'VS Codeから送ってるよ!',
        updated: new Date(2019,10,30,10,10),
        content: '## 早口言葉!\r\n早口ことばだよ!\r\n## その1\r\n隣の柿はよく客食う柿だ\r\n',
        categories: ['vscode','早口言葉']
    })
    .then((res)=>{
        console.log('-- posted complete! --\n',JSON.stringify(res,null,1));
    })
    .catch((err)=>{
        console.log(err)
    });
}

これを適当にコマンドに割り当ててあげます。

コマンドの割当については前記事のコチラを参照。

www.lisz-works.com

試しに実行

例のごとくF1→コマンド実行します。

ちゃんと投稿できてますね!

投稿されてる

下書き投稿にする場合

下書きにしたい場合、client.postEntry()の引数を少し修正します。

JSONの中に「draft : true」を追加します。

client.postEntry({
  title: 'はっや',
  updated: new Date(2019,10,30,10,10),
  content: '## 早言!\r\n早口ことば!\r\n## これだ\r\n生麦 生米 生GO\r\n',
  categories: ['vscode','早口言葉'],
  draft: true
})

ちゃんと下書きに追加されました!

下書きに投稿されてる

作成中に発生したエラー

作成中

Activating extension `undefined_publisher.hatenauploader` failed:  constructor:userNameが空白・null・未指定です。正しいはてなブログユーザー名を指定してください。

というエラーがでました。

原因はこの

let client = new Blog({
    type: 'wsse',
    username: 'はてなブログID',
    blogId: 'ブログID',
    apiKey: 'APIキー'
});

でした。

サンプルをコピペしていたが、「userName」が「username」と全て小文字になっていました。

参考

コチラを参考にしました。ありがとうございました!

github.com

qiita.com

qiita.com

あとがき

VS Code拡張開発の、はてなブログにWSSE認証で投稿する方法についてでした!

やりたいことが徐々にできていく感じですごくいい感じ!