先に言おう
これはシンプルだ(仕組みが)
はじめに
この記事を書くざっと24時間ぐらい前にこんなのを書きました
要約するとBashスクリプトでSensuの情報を手にいられるぜ(なんか違うけどだいたいそんな感じ)
さて、APIもあるんだし使ってみたいなとかBOT作ってみたいと思ったそこのあなた!
ノリでNode.js版ですがライブラリ作りましたよー
Sensu.js
使い方
以下のコマンドを実行し、インストール
npm install sensu.js
コード上で以下のサンプルのようにすると
const sensu = require("sensu.js");
const sc = new sensu.Client("APIKEY");
sc.post(["balance","zny"],"z", (err, res, body) => {
console.log(JSON.parse(body));
});
下のように帰ってきます
{ status: 'SUCCESS',
currency_name: 'BitZeny',
balance: '0.00000000',
currency_code: 'ZNY',
message: 'あなたの BitZeny の残高は 0.00000000 ZNY です。' }
細かいところ
APIKEに関しては冒頭にあるページやその他のQiitaの記事を見てもらうとして、上記のsc.post
の引数について
sensu.Client.post(array commands, String social_account, funcction)
一応こんな感じとなっています
第一引数
コマンドに使われる文字列の配列、つまり"./balance zny
としたら["balance","zny"]
といった感じ
prefix等を除いた文字をスペース区切りに配列にして第一引数としてもらう程度の考えでも構いません
第二引数
こちらはソーシャルアカウントと読めますが、何ぞこれと思われるかもしれません
実際には各プラットフォームごとのユーザー識別idのようなものです
こちらに関しては半角英数となっていますので管理用id等__重複しないもの__を使ってください
例を挙げるとしたら
- Twitter ID(スクリーンネームではない)
- Discord ID(
#
以降ではない)
できれば文字列で送ったほうが良いかもしれません
また、APIKEY、ソーシャルアカウント両方が流出してしまった場合、API経由で引き出し行為等できるので上の例で得たものに加えて予測されにくいものを使用してください
第三引数
こちらにはデータ取得後行う関数を入れてください
こちらの引数に関しては内部で使用しているrequest
を参考にしてください
のりで作ってみた割には案外出来てる(のかSensuのAPIの仕様がシンプルなのか)
(個人的には)ライブラリがあるだけで「通信部分を作らなくてはならない」面倒くささが飛ばせるので作ってよかったかなと
実はNode.jsでライブラリを作ったのは初めてなので変な点等ありましたらGithubの方へぜひぜひプルリク送ってくださいな