パッケージの依存関係を追加する
手順7: 視聴権限の変更時にEPGタスクをスケジュールする
アプリでは、いくつかのトリガーによって、ユーザーが視聴権限を持つライブコンテンツが変更されることがあります。このようなトリガーの例として、サインイン、サインアウト、定期購入の変更があります。これらのトリガーポイントでは、EpgSyncTaskSchedulerメソッドを呼び出してEPG同期タスクをスケジュールできます。
定期購入がキャンセルされた場合など、ユーザーがどのコンテンツの視聴権限も持たなくなった場合は、次の手順を実行します。
ChannelLineupProvider.add([])とChannelLineupProvider.commit()、LiveEventProvider.add([])とLiveEventProvider.commit()を使用して、ユーザーのライブイベントをシステムから消去します。- 視聴権限のあるコンテンツを更新する必要がないため、
cancelScheduledTasks()を呼び出して、スケジュール済みのEPG同期タスクをすべてキャンセルします。
次のサンプルコードスニペットは、onLogin()とonLogoutの各コールバックでEpgSyncTaskSchedulerを使用する例を示しています。
import { EpgSyncTaskScheduler } from '@amazon-devices/kepler-epg-sync-scheduler';
import {
ChannelLineupProvider,
LiveEventProvider,
} from '@amazon-devices/kepler-epg-provider';
const onLogin = async (): Promise<void> => {
try {
// EPG同期タスクを一定の間隔でスケジュールします。
await EpgSyncTaskScheduler.scheduleTask(
'<パッケージID>.epgSyncTask', // 同期タスクのコンポーネントID
60 * 24, // 24時間を分で表した値
);
console.info('EpgSync - EPG同期タスクが正常にスケジュールされました。')
} catch (error) {
console.error(`EpgSync - EPG同期タスクをスケジュールできませんでした。エラー:${error}`);
throw error;
}
};
const onLogout = async (): Promise<void> => {
try {
// ユーザーの既存のチャンネルラインナップとライブイベントを消去します。
await ChannelLineupProvider.add([]);
await ChannelLineupProvider.commit("NO_VERSION");
await LiveEventProvider.add([]);
await LiveEventProvider.commit("NO_VERSION");
// スケジュール済みのタスクをキャンセルします。
EpgSyncTaskScheduler.cancelScheduledTasks();
console.info('EpgSync - EPG同期タスクが正常に削除されました。')
} catch (error) {
console.error(`EpgSync - EPG同期タスクを消去できませんでした。エラー:${error}`);
throw error;
}
};
onLogin()コールバックが実行されると、次のようなログが表示されます。
INFO ktf.tm.nests:Successfully scheduled EPG Sync task
Last updated: 2025年9月30日

