自動チェックインとチェックイン監視
チェックインをサポートする集約アカウントが毎日定時にチェックインし、クォータを累積し、チェックインログを同期することで、手動操作の忘れを防ぎます。
機能概要
- サイト検出:アカウント認識時にサイトにチェックインエントリがあるかを自動で判断します。アカウント詳細で「チェックイン検出」をオン/オフできます。
- カスタムチェックインURL:カスタマイズされたサイト向けに、
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回)。
- 再試行アラーム:当日の通常実行で失敗したアカウントがある場合にのみトリガーされます(失敗したアカウントのみを再試行)。
- 実行フロー:
- アカウントを読み込み、スナップショットを構築します(検出が有効なアカウントは「アカウント検出ステータス」に表示されます)。
- 条件を満たすアカウントをフィルタリングします(検出が有効、自動チェックインが許可されている、providerが存在し利用可能)。
checkIn.siteStatus.isCheckedInTodayは実行判断に使用しません(このフィールドは信頼できません)。providerから返されるalready_checkedが「チェックイン済み」の真の結果ソースとなります。- 対応するprovider(現在Veloeraが組み込まれており、拡張可能)を並行して呼び出し、成功/失敗情報を記録します。
- 成功または
already_checkedはaccountStorage.markAccountAsSiteCheckedIn()に書き込まれます。失敗はログに記録され、当日の再試行キューに入ります(再試行が有効な場合)。 - 最終的に
autoCheckinStorageに書き込まれ、フロントエンドページで各アカウントのステータスと再試行情報が表示されます。
- 再スケジュール:
- 通常のデイリー実行完了後、翌日のデイリーアラームが再計画されます(1日最大1回を保証)。
- 当日失敗したアカウントがあり、再試行が有効な場合、再試行アラームが計画され、アカウントごとに当日の試行回数が記録されます(
maxAttemptsPerDayに達すると再試行は停止します)。
ベストプラクティス
- 時間枠の推奨:成功率を高めるため、深夜またはサイトのオフピーク時間(例:02:00-05:00)に設定することをお勧めします。
- デバイス間同期:WebDAVバックアップと自動同期と組み合わせて、複数のデバイスで同じアカウントとチェックイン設定を共有し、重複チェックインを避けます。
- 異常通知:通知機能はまだ組み込まれていません。バックグラウンドページの
autoCheckinStorageを自分で監視するか、「自動チェックイン」ページで失敗記録を確認してください。
よくある質問
| 問題 | トラブルシューティング方法 |
|---|---|
| ページに「未計画 / 無効 / 再試行待ちなし」と表示される | 「無効」:グローバル自動チェックインスイッチがオフです。 「再試行未有効」:再試行ポリシーが有効になっていません。 「再試行待ちなし」:再試行は有効になっていますが、現在失敗しているアカウントがありません。 「未計画」:有効になっていますが、ブラウザが chrome.alarms をサポートしていないか、アラームがまだ作成されていない/クリアされています。設定を再保存するか、Chrome/Edgeを使用してみてください。 |
| 特定のアカウントが毎日失敗する | そのサイトが自動チェックインproviderをサポートしているか確認し、必要に応じてそのアカウントの自動チェックインを無効にして手動に切り替えてください。 |
| 実行結果に「この操作を実行する権限がありません、access token が無効です」と表示される | 通常、そのアカウントの Access Token が期限切れ/取り消されていることを示します。 対処法:まずブラウザでそのサイトにログインし、「アカウント管理 → アカウント編集」で「自動認識/Access Tokenの更新」を再度実行してください。 サイトがTokenを無効にしているか、Tokenを取得できない場合は、Cookie認証に切り替えるか、そのアカウントの自動チェックインを無効にして手動に切り替えてください。 |
| カスタムURLが無効 | ブラウザで直接アクセスしてチェックインが成功することを確認してください。一部のサイトでは追加のフォームデータが必要ですが、現在GET/単純なPOSTのチェックインフローのみをサポートしています。 |
| 複数のアカウントで重複チェックインが発生する | 複数のデバイスが同時に実行している可能性があります。WebDAV同期を有効にして設定の一貫性を保つか、1台のデバイスのみで自動チェックインを有効にすることをお勧めします。 |
