Bashスクリプトで署名文字列を作る記事を投稿しましたが、その応用として署名文字列を使ってBashスクリプト版のNCMBクライアントを作成しました。
NCMBMania/ncmb-sh: CLIで使えるNCMB用のコマンドです
今はデータの取得のみですが、使い方を解説します。
使い方
コマンドは次のように使います。
./ncmb.sh -a b34...01e \ -c 489...462 \ -w '{"hello":"ncmb"}' \ -m GET \ -p Example \ -l 100
オプションは以下になります。
- -a
アプリケーションキー - -c
クライアントキー - -w
絞り込み条件(JSON指定) - -p
クラス名 - -m
HTTPメソッド - -l
取得件数 - -s
スキップ件数
処理内容
署名文字列を使ってcurlコマンドを実行しています。条件を極力オプションにしましたので、自由にデータが取り出せるでしょう。署名作成部分についてはファイルではなく、標準出力を使うようになっています。そのため echo -n
を使って最後に改行が入らないようにしています。 -e
は改行が改行として認識されるためのものです。
sig=`echo -e -n ${sigStr} | openssl dgst -sha256 -binary -hmac ${CLIENT_KEY} | base64`
curlコマンドについてはネットワークアクセス時のプログレスが出ないように -s
オプションを付けています。
cmd="curl -s -S -X ${METHOD^^} -H \"X-NCMB-Application-Key: ${APPLICATION_KEY}\" \\
jqとの組み合わせ
jqと組み合わせることで出力結果を見やすく整形できます。
注意点
Linux系の各種コマンドを使っていますのでWindowsでは動きません。WSLであれば動くかも知れませんが未検証です。
まとめ
コードはわずか60行程度でごく短いものです。これだけのコードでmBaaSにアクセスしてデータの取得が可能です。どのような仕組みになっているかぜひご覧ください。