as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持

IContentPersonalizationServer

IContentPersonalizationServer

内容个性化服务器接口

方法

reportNewContentEntitlement()

reportNewContentEntitlement(entitlement): void

报告客户在其现有内容权利列表中插入了新的个人内容权利。仅用于订阅中尚未包含的权利。仅用于因客户在设备上的操作而插入的权利。应在插入时报告。

参数

entitlement

IContentEntitlement

新权利。

返回值

void

示例

const entitlements: IContentEntitlement = new ContentEntitlementBuilder()
  .acquisitionTimestamp(new Date())
  .contentId(
    new ContentIdBuilder()
      .id('content_CDF_ID')
      .idNamespace(ContentIdNamespaces.NAMESPACE_CDF_ID)
      .build(),
  )
  .entitlementType(EntitlementType.RENTAL)
  .expirationTimestamp(new Date('2025-12-17T03:24:00'))
  .build();
// 发送事件
ContentPersonalizationServer.reportNewContentEntitlement(entitlements);

reportNewContentInteraction()

reportNewContentInteraction(contentInteraction): void

报告客户与内容(点赞、不喜欢、看过预告片等)进行了交互。

参数

contentInteraction

IContentInteraction

已发生的内容交互。

返回值

void

示例

const contentInteraction: IContentInteraction = new ContentInteractionBuilder()
  .contentId(
    new ContentIdBuilder()
      .id('content_CDF_ID')
      .idNamespace(ContentIdNamespaces.NAMESPACE_CDF_ID)
      .build(),
  )
  .interactionTimestamp(new Date())
  .contentInteractionType(ContentInteractionType.INGRESS)
  .profileId(
    new ProfileIdBuilder()
      .id('myProfileId1')
      .idNamespace(ProfileIdNamespaces.NAMESPACE_APP_INTERNAL)
      .build(),
  )
  .build();

// 发送事件
ContentPersonalizationServer.reportNewContentInteraction(contentInteraction);

reportNewCustomerListEntry()

reportNewCustomerListEntry(listType, entry): void

报告客户已在客户管理列表中插入了新条目。仅用于因客户操作在设备上插入的条目。应在插入时报告。

参数

listType

WATCHLIST

该条目所插入的客户列表类型。

entry

ICustomerListEntry

该条目添加了客户列表。

返回值

void

示例

const customerListEntry: ICustomerListEntry = new CustomerListEntryBuilder()
  .addedTimestamp(new Date())
  .contentId(
    new ContentIdBuilder()
      .id('content_CDF_ID')
      .idNamespace(ContentIdNamespaces.NAMESPACE_CDF_ID)
      .build(),
  )
  .profileId(
    new ProfileIdBuilder()
      .id('myProfileId1')
      .idNamespace(ProfileIdNamespaces.NAMESPACE_APP_INTERNAL)
      .build(),
  )
  .build();

// 发送事件
ContentPersonalizationServer.reportNewCustomerListEntry(
  CustomerListType.WATCHLIST,
  customerListEntry,
);

reportNewPlaybackEvent()

reportNewPlaybackEvent(playbackEvent): void

报告更新了客户在主动播放期间的播放行为。

参数

playbackEvent

IPlaybackEvent

设备上刚发生的播放事件。

返回值

void

示例

const playbackEvent: IPlaybackEvent = new PlaybackEventBuilder()
  .playbackPositionMs(0)
  .playbackState(PlaybackState.PLAYING)
  .durationMs(2000)
  .eventTimestamp(new Date())
  .contentId(
    new ContentIdBuilder()
      .id('content_CDF_ID')
      .idNamespace(ContentIdNamespaces.NAMESPACE_CDF_ID)
      .build(),
  )
  .channelDescriptor(
    new ChannelDescriptorBuilder()
      .majorNumber(0)
      .minorNumber(1)
      .identifier('channelID')
      .build(),
  )
  .profileId(
    new ProfileIdBuilder()
      .id('myProfileId')
      .idNamespace(ProfileIdNamespaces.NAMESPACE_APP_INTERNAL)
      .build(),
  )
  .buildActiveEvent();

// 发送事件
ContentPersonalizationServer.reportNewPlaybackEvent(playbackEvent);

reportRefreshedContentEntitlements()

reportRefreshedContentEntitlements(): void

表示因设备外操作导致单独内容权利发生变化,应获取新的更新内容权利列表。

使用此API前需调用setContentEntitlementsHandlerForComponent

返回值

void


reportRefreshedCustomerList()

reportRefreshedCustomerList(listType): void

表示因设备外操作导致客户管理列表发生更改,应获取客户管理列表的最新版本。

使用此API前需调用setCustomerListEntriesHandlerForComponent

参数

listType

WATCHLIST

已更改的客户列表类型。

返回值

void


reportRefreshedPlaybackEvents()

reportRefreshedPlaybackEvents(): void

表示可获取有关客户在设备外发生的播放行为的最新内容。

使用此API前需调用setPlaybackEventsHandlerForComponent

返回值

void


reportRemovedContentEntitlement()

reportRemovedContentEntitlement(entitlement): void

报告客户在其现有内容授权权利中不再拥有个人内容权利。仅用于订阅中未包含的权利。仅用于因设备端操作而不再有效或过期的权利。应在移除时报告。

参数

entitlement

IContentEntitlement

已移除的权利。

返回值

void

示例

const entitlements: IContentEntitlement = new ContentEntitlementBuilder()
  .acquisitionTimestamp(new Date('2025-03-17T03:24:00'))
  .contentId(
    new ContentIdBuilder()
      .id('content_CDF_ID')
      .idNamespace(ContentIdNamespaces.NAMESPACE_CDF_ID)
      .build(),
  )
  .entitlementType(EntitlementType.RENTAL)
  .expirationTimestamp(new Date('2025-12-17T03:24:00'))
  .build();
// 发送事件
ContentPersonalizationServer.reportRemovedContentEntitlement(entitlements);

reportRemovedCustomerListEntry()

reportRemovedCustomerListEntry(listType, entry): void

报告客户已从客户管理列表中移除了一个条目。仅用于因客户操作而从设备上移除的条目。应在移除时报告。

参数

listType

WATCHLIST

移除该条目的客户列表类型。

entry

ICustomerListEntry

已从客户列表中移除该条目。

返回值

void

示例

const customerListEntry: ICustomerListEntry = new CustomerListEntryBuilder()
  .addedTimestamp(new Date('2025-03-17T03:24:00'))
  .contentId(
    new ContentIdBuilder()
      .id('content_CDF_ID')
      .idNamespace(ContentIdNamespaces.NAMESPACE_CDF_ID)
      .build(),
  )
  .profileId(
    new ProfileIdBuilder()
      .id('myProfileId1')
      .idNamespace(ProfileIdNamespaces.NAMESPACE_APP_INTERNAL)
      .build(),
  )
  .build();

// 发送事件
ContentPersonalizationServer.reportRemovedCustomerListEntry(
  CustomerListType.WATCHLIST,
  customerListEntry,
);

setContentEntitlementsHandler()

setContentEntitlementsHandler(contentEntitlementsHandler): void

参数

contentEntitlementsHandler

IContentEntitlementsHandler

返回值

void

已弃用

此方法已弃用,请改用setContentEntitlementsHandlerForComponent


setContentEntitlementsHandlerForComponent()

setContentEntitlementsHandlerForComponent(contentEntitlementsHandler, component): void

为将以内容权利数据响应命令的特定组件设置处理程序。

参数

contentEntitlementsHandler

IContentEntitlementsHandler

用于响应与内容权利相关的命令的处理程序。

component

IComponentInstance

设置处理程序的组件实例。

返回值

void

示例

import {
  ContentPersonalizationServer,
  CustomerListType,
  IContentEntitlementsHandler,
  IContentEntitlementsProvider,
  ICustomerListEntriesHandler,
  ...
} from "@amazon-devices/kepler-content-personalization";

...

// 处理程序
const contentEntitlementsHandler: IContentEntitlementsHandler = {
  getAllContentEntitlements: (
    contentEntitlementsProvider: IContentEntitlementsProvider,
  ) => {
    contentEntitlementsProvider.addContentEntitlementChunk(<添加权利>);
    contentEntitlementsProvider.commit();
  },
};

...

// 无头服务
onStart(componentInstance: IComponentInstance): Promise<void> {
  ContentPersonalizationServer.setContentEntitlementsHandlerForComponent(
    contentEntitlementsHandler,
    componentInstance,
  );

  // 在此处设置其他处理程序,也可用于`SubscriptionEntitlementServer`
  ...

  return Promise.resolve();
}

setCustomerListEntriesHandler()

setCustomerListEntriesHandler(customerListEntriesHandler): void

参数

customerListEntriesHandler

ICustomerListEntriesHandler

返回值

void

已弃用

此方法已弃用,请改用setCustomerListEntriesHandlerForComponent


setCustomerListEntriesHandlerForComponent()

setCustomerListEntriesHandlerForComponent(customerListEntriesHandler, component): void

为将以客户列表条目数据响应命令的特定组件设置处理程序。

参数

customerListEntriesHandler

ICustomerListEntriesHandler

用于响应与客户列表相关的命令的处理程序。

component

IComponentInstance

设置处理程序的组件实例。

返回值

void

示例

import {
  ContentPersonalizationServer,
  CustomerListType,
  IContentEntitlementsHandler,
  IContentEntitlementsProvider,
  ICustomerListEntriesHandler,
  ...
} from "@amazon-devices/kepler-content-personalization";

...

// 处理程序
const customerListEntriesHandler: ICustomerListEntriesHandler = {
  getAllCustomerListEntries: (
    listType: CustomerListType,
    customerListEntriesProvider: ICustomerListEntriesProvider,
  ) => {
    customerListEntriesProvider.addCustomerListChunk(listType, <添加列表条目>);
    customerListEntriesProvider.commit();
  },
};
...

// 无头服务
onStart(componentInstance: IComponentInstance): Promise<void> {
  ContentPersonalizationServer.setCustomerListEntriesHandlerForComponent(
    customerListEntriesHandler,
    componentInstance,
  );

  // 在此处设置其他处理程序,也可用于`SubscriptionEntitlementServer`
  ...

  return Promise.resolve();
}

setPlaybackEventsHandler()

setPlaybackEventsHandler(playbackEventsHandler): void

参数

playbackEventsHandler

IPlaybackEventsHandler

返回值

void

已弃用

此方法已弃用,请改用setPlaybackEventsHandlerForComponent


setPlaybackEventsHandlerForComponent()

setPlaybackEventsHandlerForComponent(playbackEventsHandler, component): void

为将以播放事件数据响应命令的特定组件设置处理程序。

参数

playbackEventsHandler

IPlaybackEventsHandler

用于响应与播放事件相关的命令的处理程序。

component

IComponentInstance

设置处理程序的组件实例。

返回值

void

示例

import {
  ContentPersonalizationServer,
  CustomerListType,
  IContentEntitlementsHandler,
  IContentEntitlementsProvider,
  ICustomerListEntriesHandler,
  ...
} from "@amazon-devices/kepler-content-personalization";

...

// 处理程序
const playbackEventsHandler: IPlaybackEventsHandler = {
  getPlaybackEventsSince: (
    sinceTimestamp: Date,
    playbackEventsProvider: IPlaybackEventsProvider,
  ) => {
    playbackEventsProvider.addPlaybackEventChunk(<添加播放事件>);
    playbackEventsProvider.commit();
  },
};
...

// 无头服务
onStart(componentInstance: IComponentInstance): Promise<void> {
  ContentPersonalizationServer.setPlaybackEventsHandlerForComponent(
    playbackEventsHandler,
    componentInstance,
  );

  // 在此处设置其他处理程序,也可用于`SubscriptionEntitlementServer`
  ...

  return Promise.resolve();
}

Last updated: 2025年10月2日