as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート

手順7: 視聴権限の変更時にEPGタスクをスケジュールする

手順7: 視聴権限の変更時にEPGタスクをスケジュールする

アプリでは、いくつかのトリガーによって、ユーザーが視聴権限を持つライブコンテンツが変更されることがあります。このようなトリガーの例として、サインイン、サインアウト、定期購入の変更があります。これらのトリガーポイントでは、EpgSyncTaskSchedulerメソッドを呼び出してEPG同期タスクをスケジュールできます。

定期購入がキャンセルされた場合など、ユーザーがどのコンテンツの視聴権限も持たなくなった場合は、次の手順を実行します。

  1. ChannelLineupProvider.add([])ChannelLineupProvider.commit()LiveEventProvider.add([])LiveEventProvider.commit()を使用して、ユーザーのライブイベントをシステムから消去します。
  2. 視聴権限のあるコンテンツを更新する必要がないため、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日