Конечные точки Amazon Pinpoint в putEvents-методе JavaScript SDK не работают - PullRequest
0 голосов
/ 19 сентября 2019

Я встроил интеграцию AWS Pinpoint в свое приложение, используя API-шлюз, и события правильно поступают в Pinpoint.Однако при каждом новом запросе создается новая конечная точка, хотя я предоставляю поле «адрес».

Я просмотрел все документы, предоставленные AWS:

https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-events.html

https://docs.aws.amazon.com/pinpoint/latest/developerguide/integrate-events.html

В основном использовал этот класс документа, который, кажется, имеет некоторую недостающую информацию:

https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Pinpoint.html

async function putEvent(clientRequest){
    /* create the putEvents parameters */
    var param = {
        ApplicationId: PINPOINT_APP_ID,
        EventsRequest: {
            BatchItem: { }
        }
    };

    /* create the event parameter */
    var eventParam = {
        Endpoint: {
            Address: clientRequest.deviceId,
            ChannelType: 'CUSTOM',
            Demographic: {
                AppVersion: clientRequest.app.version,
                Locale: clientRequest.system.locale,
                Make: clientRequest.device.manufacturer,
                Model: clientRequest.device.model,
                ModelVersion: clientRequest.device.version,
                Platform: clientRequest.platform.name,
                PlatformVersion: clientRequest.platform.version
            }
        }
    };

    /* add the location if its was provided */
    if(clientRequest.hasOwnProperty('location')){
        /* add the latitude and longitude values */
        eventParam.Endpoint['Location'] = {
            Latitude: clientRequest.location.latitude,
            Longitude: clientRequest.location.longitude
        }

        /* check if a city and postal code was supplied
            alongside the country value */
        if(clientRequest.location.hasOwnProperty('cityName') == true
            && clientRequest.location.hasOwnProperty('countryCode') == true
            && clientRequest.location.hasOwnProperty('postalCode') == true){
            /* attach to the location param */
            eventParam.Endpoint.Location['Country'] = clientRequest.location.countryCode;
            eventParam.Endpoint.Location['City'] = clientRequest.location.postalCode;
            eventParam.Endpoint.Location['PostalCode'] = clientRequest.location.cityName;
        }
    }

    /* check if the userId was supplied */
    if(clientRequest.hasOwnProperty('userId')){
        /* attach the hashed and salted user id */
        eventParam.Endpoint['User'] = {UserId: getSHA512(clientRequest.userId+USERID_HASHSALT)};
    }

    /* attach the event values */
    eventParam['Events'] = [{
        EventType: clientRequest.event.name,
        Timestamp: (new Date()).toISOString()
    }];

    /* create a unique request id */
    var requestId = (new Date().getTime()) + Math.floor(Math.random() * 10);
    param.EventsRequest.BatchItem[requestId] = eventParam;

    /* flush an event to Pinpoint */
    await Pinpoint.putEvents(param).promise();
}

После каждого запроса у меня есть новый PinpointОпределена конечная точка, хотя я предоставляю уникальное значение адреса для каждой конечной точки.

a) Что мне нужно сделать, чтобы конечные точки были уникальными?

b) Как я могу сообщить о входе, выходе из системы и других событиях?

^Не смог найти их в документации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...