自動チェックインとチェックイン監視
チェックインをサポートする集約アカウントが毎日定時にチェックインし、クォータを累積し、チェックインログを同期することで、手動操作の忘れを防ぎます。
機能概要
- サイト検出:アカウント識別時にサイトにチェックインエントリがあるかを自動で判断し、アカウント詳細で「チェックイン検出」をオン/オフできます。
- カスタムチェックインエントリ:カスタマイズされたサイト向けに、
customCheckInUrlとcustomRedeemUrlを設定でき、同時にチャージページを連動して開くかどうかを決定します。 - 自動チェックインスケジューリング:
autoCheckinSchedulerはchrome.alarmsに基づき、指定された時間枠内でランダムにチェックインをトリガーし、すべてのアカウントが同時にアクセスするのを防ぎます。 - 実行履歴:実行ごとにログが生成され、成功/失敗の理由、最終実行時間、次回の予定時間が含まれます。「自動チェックイン」ページで確認できます。
使用前提
- アカウント管理 → アカウント編集 で「チェックイン検出」を有効にし、手動でチェックインが成功することを確認します。
- 自動チェックインが必要なアカウントに対して「自動チェックイン」スイッチをチェックします(デフォルトで有効、個別のアカウントで無効にできます)。
- 設定 → 自動チェックイン でグローバル自動チェックインを有効にし、時間枠を設定します。
- ブラウザが
chrome.alarmsをサポートしている必要があります(Chrome、Edge、Kiwi ブラウザは正常に動作しますが、一部のFirefoxモバイル版ではサポートされていない場合があります)。
設定手順
1. アカウントレベルのスイッチ
- 任意のアカウント詳細 → 「その他の設定」を開きます。
- 「チェックイン検出」を有効にすると、以下を設定できます:
- カスタムチェックインURL(サイトのデフォルトエントリが利用できない場合)。
- カスタムチャージURLおよび「チェックイン時にチャージページも開く」。
- 「自動チェックイン」スイッチ(オフにすると、グローバルで有効になっていても、そのアカウントは自動チェックインに参加しません)。
2. グローバル時間枠
設定 → 自動チェックイン パネルで:
| オプション | 説明 |
|---|---|
| 自動チェックインを有効にする | グローバル globalEnabled を制御します。オフにするとアラームは作成されません。 |
| 時間枠 開始 / 終了 | 24時間形式で、夜間をまたぐことも可能です(例:22:00 → 06:00)。スケジューラはこの時間範囲内でランダムな時間を選択して実行します。 |
| 実行履歴を表示 | 「自動チェックイン」ページへ素早く移動し、ステータスとログを確認します。 |
| デフォルトに戻す | resetAutoCheckinConfig() を呼び出し、09:00~18:00、無効の状態に戻します。 |
3. 実行ステータスの確認
- プラグインサイドバー → 自動チェックイン ページを開くと、以下を確認できます:
- 最近の実行結果(成功 / 部分成功 / 失敗)。
- 次回のスケジュール時間
nextScheduledAt。 - アカウントごとのログ(所要時間、失敗理由など)。
- 「今すぐ実行」をクリックすると、デバッグのために
autoCheckin:runNowを手動で一度トリガーできます。
動作原理
- 設定の書き込み:
UserPreferencesContextはautoCheckin設定をローカル設定に保存し、sendRuntimeMessageを介してバックグラウンドに通知します。 - スケジューリングの初期化:
autoCheckinScheduler.initialize()は拡張機能の起動時にアラームリスナーを作成し、ブラウザがchrome.alarmsをサポートしていれば、次回の実行時間をランダムに設定します。 - 実行フロー:
- すべてのアカウントを読み込み、前日の
isCheckedInTodayステータスをリセットします。 - 条件を満たすアカウントをフィルタリングします(検出が有効、自動チェックインが許可されている、まだチェックインされていない、プロバイダが存在する)。
- 対応するプロバイダ(現在Veloeraが内蔵されており、拡張可能)を一つずつ呼び出し、リクエスト間にランダムな遅延を挿入してレート制限のトリガーを回避します。
- 成功後には
accountStorage.markAccountAsCheckedIn()を呼び出し、失敗した場合はログを記録します。 - 最終的に
autoCheckinStorageに書き込み、フロントエンドページで各アカウントのステータスを表示します。
- すべてのアカウントを読み込み、前日の
- 再スケジューリング:実行完了後、再度
scheduleNextRun()を呼び出し、毎日一度だけ(または設定された頻度で)トリガーされることを保証します。
ベストプラクティス
- 時間枠の推奨:成功率を高めるため、深夜またはサイトのオフピーク時間帯(例:02:00-05:00)に設定することをお勧めします。
- デバイス間同期:WebDAV バックアップと自動同期 と組み合わせることで、複数のデバイスで同じアカウントとチェックイン設定を共有し、重複チェックインを避けます。
- 異常通知:現時点では通知機能は内蔵されていません。背景ページの
autoCheckinStorageを自分で監視するか、「自動チェックイン」ページで失敗記録を確認してください。
よくある質問
| 問題 | トラブルシューティング方法 |
|---|---|
| ページに「未計画」と表示される | ブラウザが chrome.alarms をサポートしていないか、グローバル自動チェックインが有効になっていません。設定を再保存するか、Chrome/Edge に切り替えてみてください。 |
| 特定のアカウントが毎日失敗する | そのサイトが自動チェックインプロバイダをサポートしているか確認し、必要に応じてそのアカウントの自動チェックインを無効にして手動に切り替えてください。 |
| カスタムURLが無効 | ブラウザで直接アクセスしてチェックインが成功するか確認してください。一部のサイトでは追加のフォームデータが必要ですが、現在サポートされているのはGET/シンプルなPOSTのチェックインフローのみです。 |
| 複数のアカウントで重複チェックインが発生する | 複数のデバイスが同時に実行されている可能性があります。WebDAV同期を有効にして設定の一貫性を保つか、自動チェックインを有効にするデバイスを1台に限定することをお勧めします。 |