"Amazon Personalize" PutItems、PutEvents、PutUsers 使用 aws/aws-sdk-php

"Amazon Personalize" PutItems, PutEvents, PutUsers using aws/aws-sdk-php

我正在 Laravel 应用程序和 Amazon Personalize 之间建立集成,使用:

aws/aws-sdk-php 

一切顺利,但当我查看如何使用新用户、交互和项目更新数据集时,我找不到合适的 method/approach 来执行此操作,甚至找不到合适的方法。

我已经创建了事件跟踪器,但我找不到如何将此 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

link 是 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:

https://github.com/aws/aws-sdk-php-laravel