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