IContentPersonalizationServer
内容个性化服务器接口
方法
reportNewContentEntitlement()
reportNewContentEntitlement(
entitlement):void
报告客户在其现有内容权利列表中插入了新的个人内容权利。仅用于订阅中尚未包含的权利。仅用于因客户在设备上的操作而插入的权利。应在插入时报告。
参数
entitlement
新权利。
返回值
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
已发生的内容交互。
返回值
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
该条目所插入的客户列表类型。
entry
该条目添加了客户列表。
返回值
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
设备上刚发生的播放事件。
返回值
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
已更改的客户列表类型。
返回值
void
reportRefreshedPlaybackEvents()
reportRefreshedPlaybackEvents():
void
表示可获取有关客户在设备外发生的播放行为的最新内容。
使用此API前需调用setPlaybackEventsHandlerForComponent。
返回值
void
reportRemovedContentEntitlement()
reportRemovedContentEntitlement(
entitlement):void
报告客户在其现有内容授权权利中不再拥有个人内容权利。仅用于订阅中未包含的权利。仅用于因设备端操作而不再有效或过期的权利。应在移除时报告。
参数
entitlement
已移除的权利。
返回值
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
移除该条目的客户列表类型。
entry
已从客户列表中移除该条目。
返回值
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
返回值
void
已弃用
此方法已弃用,请改用setContentEntitlementsHandlerForComponent。
setContentEntitlementsHandlerForComponent()
setContentEntitlementsHandlerForComponent(
contentEntitlementsHandler,component):void
为将以内容权利数据响应命令的特定组件设置处理程序。
参数
contentEntitlementsHandler
用于响应与内容权利相关的命令的处理程序。
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
返回值
void
已弃用
此方法已弃用,请改用setCustomerListEntriesHandlerForComponent。
setCustomerListEntriesHandlerForComponent()
setCustomerListEntriesHandlerForComponent(
customerListEntriesHandler,component):void
为将以客户列表条目数据响应命令的特定组件设置处理程序。
参数
customerListEntriesHandler
用于响应与客户列表相关的命令的处理程序。
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
返回值
void
已弃用
此方法已弃用,请改用setPlaybackEventsHandlerForComponent。
setPlaybackEventsHandlerForComponent()
setPlaybackEventsHandlerForComponent(
playbackEventsHandler,component):void
为将以播放事件数据响应命令的特定组件设置处理程序。
参数
playbackEventsHandler
用于响应与播放事件相关的命令的处理程序。
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日

