1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ノリと勢いでSensuのNode.js版ライブラリ作った

Posted at

先に言おう

これはシンプルだ(仕組みが)

はじめに

そうだBashでSensuのbalance動かしてみようぜ

この記事を書くざっと24時間ぐらい前にこんなのを書きました
要約するとBashスクリプトでSensuの情報を手にいられるぜ(なんか違うけどだいたいそんな感じ)

さて、APIもあるんだし使ってみたいなとかBOT作ってみたいと思ったそこのあなた!

ノリでNode.js版ですがライブラリ作りましたよー

Sensu.js

Sensu.js - npm

使い方

以下のコマンドを実行し、インストール

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の方へぜひぜひプルリク送ってくださいな

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?