SORACOM Developers

Development tools

SORACOM SDK for Ruby

SORACOM SDK for Ruby は、SORACOM の API を Ruby プログラムからコールするためのライブラリとなります。 またコマンドラインインターフェース(CLI)も付属していますので、プログラムを組まなくてもシェルスクリプト等から API を呼び出す事が可能となります。

インストール

$ (sudo) gem install soracom # 環境により sudo が必要となる場合があります

としてインストールする事で、ライブラリおよびコマンドラインインターフェース ( soracom コマンド)が導入されます。

初期設定

Version 1.1 以降では、プロファイル を指定することで、簡単に操作するユーザを切り替えることが可能となりました(デフォルトでは、 default プロファイルが使用されます )。また、従来の環境変数による指定も引き続き利用可能です。

プロファイルの作成

認証方法は3種類あります。

  1. 認証キー(AuthKeyId & AuthKey)を使用する方法 (Operator/SAMユーザ共通) ※推奨
  2. Opertorの認証(Eメール&パスワード)
  3. SAMユーザの認証(オペレータIDとユーザ名・パスワード)

ここでは、事前にコンソールで認証キーを作成しておき、CLIを使ってプロファイルを作成します。

~$ soracom configure --profile default
--- SORACOM CLI setup ---
This will create .soracom directory under /Users/sorao and place 'default.json' in it.

Please select which authentication method to use.

1. Input AuthKeyId and AuthKey *Recommended*
2. Input Operator credentials (Operator Email and Password)
3. Input SAM credentials (OperatorId and UserName and Password)

select(1-3)> 1
authKeyId: keyId-abcdefabcdefabcdefabcdefabcdefabcdef
authKey: (エコーバックされません)
wrote to /Users/sorao/.soracom/default.json

認証が行えるかどうか、確認しておきましょう。

~$ soracom auth --profile default
testing authentication...
authentication succeeded.
 :
 :

使用方法

SDK

使用例

サンプルコード: SIMの一覧を取得し、プランを s1.fast に変更する

#!/usr/bin/env ruby
require 'soracom'

# SORACOM APIアクセス用クライアントの初期化方法
# 1. client = Soracom::Client.new(email: '登録メールアドレス', password: 'パスワード')
# 2. client = Soracom::Client.new
#   (環境変数 SORACOM_EMAIL & SORACOM_PASSWORD を参照)

client = Soracom::Client.new

# サブスクライバー(SIM)の一覧を取得
sims = client.list_subscribers

puts "found #{sims.count} SIMs."

# 操作対象のIMSI配列を用意
imsis = sims.map { |sim| sim['imsi'] }

puts 'change plan to s1.fast'

# プラン変更のためのAPIをコールする
client.client.update_subscriber_speed_class(imsis, 's1.fast')

puts 'done'

コマンドラインインターフェース

使用例

SIMの一覧を取得する

$ soracom subscriber list
[
  {
    (SIMの情報)
  },
  :
  {
    (SIMの情報)
  }
]

出力されたJSONフォーマットのデータから特定のパラメータを抜き出すには、jq コマンドが有用です。

$ soracom subscriber list | jq -r '.[].imsi' | tee imsi.txt
001010000000000
001010000000001
001010000000002
      :

複数のSIMに対して、プランを s1.fast に変更する

$ soracom subscriber update_speed_class --imsi $(cat imsi.txt) --type s1.fast
[
  {
    (変更後のSIMの情報)
  },
  :
  {
    (変更後のSIMの情報)
  }
]

コマンドライン補完

利用しているシェルが bash/zsh であれば、

eval "$(soracom complete)"

と .bashrc や .zshrc などに書く事で、soracom コマンドのコマンド名補完が可能です。

$ soracom [tab]
~$ soracom
auth           stats
event_handler  subscriber
group          support
sim            version

$ soracom sub[tab]

$ soracom subscriber [tab]
activate
deactivate
delete_tag
disable_termination
enable_termination
help
list
register
set_expiry_time
set_group
terminate
unset_expiry_time
unset_group
update_speed_class
update_tags

$ soracom subscriber li[tab]
$ soracom subscriber list
pagetop