php - 使用 aws/aws-sdk-php 的“Amazon Personalize”PutItems、PutEvents、PutUsers
问题描述
我正在使用以下方法在我的 Laravel 应用程序和 Amazon Personalize 之间构建一个集成:
aws/aws-sdk-php
一切正常,但是当我研究如何使用新用户、交互和项目更新数据集时,我找不到正确的方法/方法来做到这一点,或者甚至没有可能。
我已经创建了事件跟踪器,但我找不到如何将此 Python 代码复制到 PHP 中:
# Configure Properties:
event = {
"itemId": str(ITEM_ID),
}
event_json = json.dumps(event)
# Make Call
personalize_events.put_events(
trackingId = TRACKING_ID,
userId= USER_ID,
sessionId = session_ID,
eventList = [{
'sentAt': int(time.time()),
'eventType': 'EVENT_TYPE',
'properties': event_json
}]
上面的代码是从这里提取的一部分https://github.com/aws-samples/amazon-personalize-samples/blob/master/getting_started/notebooks/1.Building_Your_First_Campaign.ipynb
这将用于跟踪新事件: https ://docs.aws.amazon.com/personalize/latest/dg/API_UBS_PutEvents.html
如果有机会更好地避免执行额外的 Python 脚本,如果没有,我会选择该选项。
提前致谢!
解决方案
我发现我需要为此目的使用PersonalizeEventsClient而不是PersonalizeClient,如下所述:
https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-personalize-events-2018-03-22.html#putevents
该链接是 AWS Personalize 文档的一部分,我之前错过了,他们解释了如何使用 AWS SDK PHP 放置事件、项目和用户,例如:
$client = AWS::createClient('personalizeevents');
$result = $client->putEvents([
'eventList' => [ // REQUIRED
[
'eventId' => '<string>',
'eventType' => '<string>', // REQUIRED
'eventValue' => <float>,
'impression' => ['<string>', ...],
'itemId' => '<string>',
'properties' => '<string>',
'recommendationId' => '<string>',
'sentAt' => <integer || string || DateTime>, // REQUIRED
],
// ...
],
'sessionId' => '<string>', // REQUIRED
'trackingId' => '<string>', // REQUIRED
'userId' => '<string>',
]);
我也在为 Laravel 使用这个服务提供者:
推荐阅读
- javascript - 动画 javascript div 上的文本
- reactjs - ReactJS material-ui 'TypeError: onSelect is not a function' tabHandler
- python - 是否可以在 Dask 中为特定任务选择工人?
- c - C:管道:如何正确使用管道传递动态 int 数组
- python - 尝试将我的文件推送到 heroku 时出现错误“git push heroku master ERROR”
- reactjs - 提交发布请求并在邮递员中工作时,仅在 reactjs 中出现 CORS 策略错误
- php - htaccess 重定向文件夹以防止直接访问
- python - 用管道填充某些列缺失值后,无法从数据框中删除
- vb.net - vb.net框架不使用webBrowser工具自动登录网站
- c# - 加密文件的密钥长度