Невозможно зарегистрировать устройство IOS на Mobile First 8
Я могу видеть iOS-устройство на вкладке "Устройства" в MF, зарегистрированной в моем приложении. но отправка уведомления завершается с ошибкой ниже:
An error occurred while the notification was sent. Internal server error. No devices found.
Просмотрев код IOS, я заметил следующую проблему при вызове MFPPush.sharedInstance.registerDevice(nil)
Cannot retrieve a valid authorization header for header. Check resource and authorization server configuration.
Я использую код из примера git. Ниже приведен фрагмент кода с ошибкой:
@IBAction func registerDevice(_ sender: AnyObject) {
print("Attempting Device registration with Mobile First")
WLAuthorizationManager.sharedInstance().obtainAccessToken(forScope: "push.mobileclient") { (token, error) -> Void in
if (error != nil) {
print("Did not recieve an access token from server: " + error.debugDescription)
} else {
WLClient.sharedInstance()?.setDeviceDisplayName("White Ipad", withCompletionHandler: { (error) in
if error == nil{
print("device display name is set")
}else{
print("error setting device name: " + error.debugDescription)
}
})
print("Recieved the following access token value: " + (token?.value ?? "no token"))
MFPPush.sharedInstance().registerDevice(nil) { (response, error) -> Void in
if error == nil {
self.enableButtons()
self.showAlert("Registered successfully with Mobile First")
print(response?.description ?? "")
} else {
self.showAlert("Registration failed with Mobile First. Error \(error?.localizedDescription)")
print(error?.localizedDescription ?? "")
}
}
}
}
}
Mobile First Config: я следовал документации и настроил проверку безопасности UserLogin из примера проекта git и удалил область действия для push.mobileclient под защитой.
Читая OAuth Security в MF, я понимаю, что токен необходим для доступа к ресурсам, но я не могу понять, как подключить токен в registerDevice().
1 ответ
Похоже, что вы не настроили Push-уведомления в MobileFirst Server должным образом.
Убедитесь, что вы добавили
push.mobileclient
Область на вкладке Безопасность вашего приложения. Если вы не используете проверку безопасности, вы можете добавить область действия, как показано ниже.Проверьте, настроено ли в вашем приложении допустимый профиль обеспечения iOS, включенный с помощью функции Push Capability
Убедитесь, что вы загрузили действительные сертификаты песочницы / производственные сертификаты на вкладке Push вашего конкретного приложения в MFP Operations Console. Подробнее: здесь
Убедитесь, что в вашем приложении включена функция Push Capability в настройках проекта, а также проверьте отправку токена устройства на MF Server с помощью
MFPPush.sharedInstance().sendDeviceToken(deviceToken)
API вdidRegisterForRemoteNotificationsWithDeviceToken
методAppDelegate
файл -