今日の作業

Web Logbook のUI改善と、総務省の無線局等情報検索APIとの連携を実装しました。

登録・ログインをシンプルに

当初はメールアドレスを必須にしていましたが、アマチュア無線の世界ではコールサインが唯一の識別子です。そこで登録フローを大幅に簡略化しました。 変更前: コールサイン + メールアドレス + パスワード 変更後: コールサイン + パスワード のみ

メールアドレスはパスワードリセット用として、自局設定画面で任意入力できるようにしました。ログインもコールサインで行います。ハムにとって最も自然な形です。

カラーテーマの変更

ベースカラーを青系からライトグリーン系に変更しました。
  • ヘッダー: 薄いグリーン (#e8f5e9)
  • ナビゲーション: ライトグリーン (#c8e6c9)
  • ボタン: グリーン (#43a047)
  • 背景: ほぼ白のグリーン (#f5f7f5)
アウトドア・移動運用のイメージに合う、目に優しい配色です。

基本情報の整理

設定画面の「基本情報」セクションを整理しました。 基本情報に残した項目:
  • コールサイン(変更不可)
  • メールアドレス(任意)
  • オペレーター名
QTH、グリッドロケーター、出力などの情報は無線局免許の情報として管理します。基本情報はあくまで「あなたは誰か」だけに絞りました。

総務省API連携

今回の目玉は、総務省の無線局等情報検索 Web-API との連携です。

苦労したポイント

1. User-Agent問題: 総務省のAPIは2025年のシステム更新以降、ブラウザ風のUser-Agentでないとアクセスを拒否するようになりました。PHPの file_get_contents では正しくヘッダーが送信されず、cURL に切り替えることで解決。

2. 取得件数の制限: 詳細情報付き(DA=1)の場合、一度に取得できる件数(DC)は最大2件まで。最初はDC=10を指定して400エラーが返っていました。

3. APIの仕様:

GET https://www.tele.soumu.go.jp/musen/list?ST=1&OW=AT&OF=2&DA=1&SC=1&DC=2&MA=コールサイン&MC=1
パラメータ意味
ST1アマチュア局検索
OWATアマチュア局
OF2JSON形式
DA1詳細情報あり
DC2取得件数(詳細ありは最大2)
MAコールサイン検索対象
MC1UTF-8

取得できる情報

コールサインを指定するだけで、以下の情報が自動取得できます:
  • 局種別(移動局/固定局)
  • 常置場所/設置場所
  • 免許日
  • 有効期限
  • 移動範囲

ワンクリック登録

取得した免許情報は「この免許を登録」ボタンでワンクリックでDBに保存できます。手入力の手間を大幅に削減しました。

無線局免許の表示改善

登録済みの無線局免許の一覧表示を改善し、以下の情報をカード形式で見やすく表示するようにしました:
  • コールサイン
  • 局種別
  • 常置場所
  • 免許日
  • 有効期限

管理者権限

JR2BEB(開発者)に管理者権限を付与しました。logbook_users テーブルに role カラム(user/admin)を追加し、将来の管理機能に備えます。

次にやること

  • QSOログ入力画面の作成
  • ログ一覧・検索機能
73!