Да, конечная точка одинакова для каждого уникального устройства, электронной почты и т. Д. Она должна быть одинаковой, чтобы 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")
}
}
person
Josh Wolff
schedule
31.08.2018