Является ли конечная точка уникальной для устройства в AWS Pinpoint? - PullRequest
0 голосов
/ 30 августа 2018

Я новичок в Pinpoint и пытаюсь понять, как endpoint / endpointId работает в семантике Pinpoint. Из aws doc :

Когда пользователь начинает сеанс (например, запуская ваше мобильное приложение), ваше мобильное или веб-приложение может автоматически зарегистрировать (или обновить) конечную точку с помощью Amazon Pinpoint.

Означает ли это, что при каждом запуске приложения появляется новая конечная точка / endpointId? Будет ли он регистрировать новую конечную точку, если текущий сеанс завершается или пользователь убивает и перезапускает приложение?

Есть ли способ, которым я могу получить конечную точку / endpointId в приложении программно?

1 Ответ

0 голосов
/ 31 августа 2018

Да, конечная точка одинакова для каждого уникального устройства, электронной почты и т. Д. Она должна быть одинаковой, чтобы Amazon знал, куда отправлять push-уведомления, например, если вы запускаете целевую кампанию. Если пользователь убивает и перезапускает приложение, то используется та же конечная точка. Это касается как аутентифицированных, так и не аутентифицированных пользователей. Таким образом, у меня была бы причина полагать, что, если текущий сеанс заканчивается (то есть пользователь должен пройти повторную проверку подлинности), тогда они имеют одинаковую конечную точку. Это имеет смысл, потому что каждое устройство (само устройство) нуждается в уникальном идентификаторе. Чтобы лучше ответить на ваш вопрос, я лично проверил нижеприведенное и подтвердил:

Если один пользователь выходит из системы, а другой - в [на том же устройстве], идентификатор конечной точки остается прежним. Назначение приведенного ниже кода регистрирует идентификатор пользователя с определенной конечной точкой. Вы также можете изменить приведенный ниже код для печати идентификатора конечной точки, как вы и просили.

Поместите это в верхнюю часть вашего AppDelegate, предполагая, что вы используете Swift и AWS Cognito для аутентификации пользователя:

        var pinpoint: AWSPinpoint?

... в didFinishLaunching, поместите это:

        self.pinpoint = AWSPinpoint(configuration:AWSPinpointConfiguration.defaultPinpointConfiguration(launchOptions: launchOptions))
        if let targetingClient = pinpoint?.targetingClient {
                if let username = AppDelegate.defaultUserPool().currentUser()?.username {
                    let endpoint = targetingClient.currentEndpointProfile()
                    // Create a user and set its userId property
                    let user = AWSPinpointEndpointProfileUser()
                    user.userId = username
                    // Assign the user to the endpoint
                    endpoint.user = user
                    // Update the endpoint with the targeting client
                    targetingClient.update(endpoint)
                    print("Assigned user ID \(user.userId ?? "nil") to endpoint \(endpoint.endpointId).\n")
                }
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...