• #日記
  • #Chrome拡張機能
  • #会計サービス
  • #Google Sheets API
daily-log

2026年3月24日の開発日記

朝5時、PRレビューコメントの確認から始まった一日。終わってみれば、Chrome拡張の会計サービス連携をエクスポート機能・ログ機能・UI構造・ドキュメントの4軸で一気に押し進めていた。金額の型変換が3度裏切り、CTI切替の仕様がサービスリスト取得を阻み、公式APIの壁がビジネスモデルの構造を浮き彫りにした。

今日やったこと

1. エクスポート機能の強化

PR #1のマージから始まり、6件の機能追加・修正を積み重ねた。

主な成果:

  • スプレッドシートURL分離(仕訳帳用 / 連携明細用)
  • 金額を数値型に変換 + カンマ区切り書式設定
  • 残高試算表エクスポート(HTMLスクレイピング方式、BS+PL統合シート)
  • 年度フィルタバグ修正(全年度展開 → 選択年度のみ)
  • 重複チェックの型不一致問題3パターンを修正

詳細: Chrome拡張エクスポート機能強化


2. エクスポートログ機能とUIリファクタリング

エクスポート結果を事業者×サービス×年度のマトリクスで可視化し、UI構造をミラーカラム3列に刷新した。

主な成果:

  • エクスポートログ機能(chrome.storageに保存、マトリクス表示)
  • リアルタイム進捗表示(マスがポコポコ埋まるアニメーション)
  • モーダル → ミラーカラム3列目への移行
  • タブ構造再構成(設定 / エクスポート / インポート)
  • 事業者×年度×サービスの2段ネスト表示
  • デッドコード削除、resolveJournalToRowsのlib.js分離

詳細: エクスポートログ機能とUIリファクタリング


3. 会計サービスのビジネスモデル調査とAPIドキュメンテーション

Chrome拡張で蓄積したAPI知識を包括的リファレンスにまとめ、会計サービスのビジネスモデル構造を掘り下げた。

主な成果:

  • 内部APIリファレンス(全13セクション)を memo/ に作成
  • 勘定科目マスタのAPI取得 → エクスポート形式でスプレッドシートに書き出し
  • 年度切替の仕様検証(日付パラメータでは跨げない → PATCH必須)
  • 配布リスク評価 + ZIP配布の法的整理
  • 公式v3 API制限の調査(仕訳APIは上位プラン限定)
  • 競合サービスのプラン比較調査

詳細: 会計サービスのビジネスモデル調査とAPIドキュメンテーション


今日の試行錯誤

#テーマ試したこと結果気づき
1金額の数値化String(d.totalValue) を数値のまま渡す成功Sheets API RAWモードはJSON型を反映する
2カンマ区切りformatSheetColumns#,##0 設定fmt.columns is not iterable エラーヘッダー背景色エントリにcolumnsがない → ガード追加
3重複チェック①数値 vs 文字列重複追記されたnormalizeRowでString()統一が必要
4重複チェック②カンマ付きFORMATTED_VALUE vs 素の数値再び重複追記replace(/,/g, '') で除去してから比較
5サービスリストaccounts?cti=XXX のGETで取得全事業者が同じサービスになったGETではセッション切替されない → CTI切替POST必須
6年度切替日付パラメータで跨年度取得2024年度指定なのに2025年度データが返るセッション年度に依存 → PATCH必須
7残高試算表indentCSS label-indent-* をそのまま使用勘定科目のインデントが不統一補助科目あり(indent=1) vs なし(indent=3) → 論理階層で固定
8インポートの事業者名getEntityName() でDOM検索「不明」と表示されたポップアップと会計ページでDOMコンテキストが違う → レジストリから取得

今日の学び

  • Sheets APIのFORMATTED_VALUEは書式適用後の文字列を返すため、数値比較には使えない。UNFORMATTED_VALUEか、比較時にカンマ除去が必要
  • 内部APIは年度パラメータを無視してセッション年度のデータを返す。年度切替はPATCH必須
  • HTMLのCSSクラスに埋め込まれたメタ情報(indent level)は便利だが、値の統一性は保証されていない
  • 公式仕訳APIは上位プラン限定。通常プランでは使えない

関連記事