Skip to content

スクリプト活用

lm は CI/CD パイプラインやシェルスクリプトでの利用を想定して設計されています。

環境変数

プロンプトなしで実行するには環境変数を設定します。

変数説明
LM_TOKENトークン直接指定(全 auth バイパス)
LM_CHANNEL_IDChannel ID
LM_CHANNEL_SECRETChannel Secret(stateless 用)
LM_PROFILEプロファイル名
LM_FORMAT出力フォーマット: table/json/yaml/csv
LM_CONFIG_DIR設定ディレクトリパス
LM_NO_INPUT1 で非対話モード
LM_ENDPOINTAPI ベース URL 上書き(テスト用、HTTPS のみ)
LM_DEBUG1/true/api でデバッグログ

Exit Code

スクリプトでエラーハンドリングに使えます。

Code意味
0成功
1一般エラー、設定ファイル parse エラー
2認証エラー(401/403、トークン未設定)
3リソース未検出(404)
4バリデーションエラー(引数不正)
5LINE API エラー
6ネットワークエラー
10キャンセル(Ctrl+C)
11レート制限(429)

CI/CD での利用例

GitHub Actions

yaml
- name: Notify LINE
  env:
    LM_TOKEN: ${{ secrets.LINE_TOKEN }}
  run: |
    lm message push --to ${{ vars.LINE_USER_ID }} --text "Deploy completed: ${{ github.sha }}"

トークン有効性チェック

bash
if ! lm auth token --check; then
    echo "Token is invalid, re-authenticating..."
    lm auth login --type stateless
fi

設定ファイル検証

bash
lm config validate
config.yaml:        ok (1 profile(s))
credentials.yaml:   ok
tokens.yaml:        ok (default: valid)
Active profile:     default

出力の加工

JSON + jq

bash
# Bot の Display Name を取得
lm bot info --format json | jq -r '.displayName'

# フォロワー数を取得
lm user followers --all --format json | jq '.userIds | length'

パイプ

stdout はデータのみ、stderr は人間向けメッセージです。

bash
# トークンを変数に格納(stderr のメッセージは画面に表示される)
TOKEN=$(lm auth token)

# エラーメッセージを抑制してデータだけ取得
lm bot info --format json 2>/dev/null

デバッグ

bash
# HTTP リクエスト/レスポンスヘッダーを表示
LM_DEBUG=1 lm bot info

# リクエスト/レスポンスボディも表示
LM_DEBUG=api lm message push --to U1234 --text "test"