Недопустимая длина DeviceToken при отправке pushkit-пароля с помощью PushSharp

Я пытаюсь использовать PushSharp в проекте, связанном с Apple passkit.

Моя текущая проблема связана с пушками с паролями.

Когда я пытаюсь создать уведомление, появляется сообщение

длина токена устройства недопустима (точное сообщение об исключении: недопустимая длина токена устройства.

var notif = new ApnsNotification(token, payload);

Когда я регистрирую новый купон passkit, длина его токена равна 32. Мне это кажется нормальным.

В чем должна быть проблема? Поддерживает ли PushSharp пароль вообще? Как я вижу, некоторые люди использовали его, но я не смог найти никакой официальной информации о нем.

Обратите внимание: я знаю PushSharp, поскольку использую его для отправки нормальных push-сообщений, он работал годами без каких-либо проблем для меня. У меня вопрос о пушах, связанных с паролями.

Большое спасибо!

ИЗМЕНИТЬ

После изменения кода по предложениям Бариса Акара проблема устранена, но появляется другая:

Apple Notification Failed: ID=1, Code=ConnectionError

2016-11-18 11: 07: 22.де. [ИНФОРМАЦИЯ] Остановка: ожидание выполнения задач 2016-11-18 11: 07: 22.de. [ИНФОРМАЦИЯ] В ожидании выполнения всех задач 1 2016-11-18 11: 07: 22.de. [ИНФОРМАЦИЯ] APNS-Client [1]: идентификатор пакета отправки = 1, количество = 1 2016-11-18 11: 07: 22.de. [INFO] APNS-Client [1]: пакет отправлен, ожидает возможного ответа ... Ошибка уведомления Apple: ID = 1, Code = ConnectionError 18-11-18 11: 07: 22.de. [ИНФОРМАЦИЯ] Все задачи завершены 18.11.2016 11: 07: 22.de. [ИНФОРМАЦИЯ] Прошло WhenAll 2016-11-18 11: 07: 22.de. [ИНФОРМАЦИЯ] Broker IsCompleted 2016-11-18 11: 07: 22.de. [DEBUG] Задача брокера завершилась 18 ноября 2016 г., 11: 07: 22.де. [ИНФОРМАЦИЯ] Остановка: Готово, ожидание по задачам 2016-11-18 11: 07: 22.de. [ИНФОРМАЦИЯ] APNS-Client [1]: чтение выполнено для идентификатора пакета = 1, таймер пакета сброшен ...


person Tom    schedule 14.11.2016    source источник
comment
Вы уже знакомы с этой проблемой?   -  person dymanoid    schedule 17.11.2016


Ответы (1)


Похоже, что в более старой версии это работало бы следующим образом:

var n = new AppleNotification().WithPasskitUpdate();

Функция WithPasskitUpdate() больше недоступна, но она должна быть эквивалентом:

var notif = new ApnsNotification();
notif.DeviceToken = token;
notif.Payload = payload;

Не тестировал, но после проверки кода может получится. В основном вы обходите проверку длины токена в конструкторе ApnsNotification таким образом (что, вероятно, следует исправить, если токен меньше для pushkit-пакетов).

Также убедитесь, что используете правильный сертификат (который, похоже, отличается от сертификата для обычных push-уведомлений) и используйте производственные настройки, поскольку, похоже, нет среды песочницы для сберегательной книжки (см. этот ответ).

Более того, вам необходимо передать false для параметра validateIsApnsCertificate конструктора ApnsConfiguration, поскольку существует проверка сертификата, которая не обрабатывает сертификат pushkit.

var config = new ApnsConfiguration(ApnsConfiguration.ApnsServerEnvironment.Production, certificateFile, certificateFilePwd, false);
person Baris Akar    schedule 17.11.2016
comment
Также убедитесь, что вы используете правильный сертификат (который, кажется, отличается от сертификата для обычных push-уведомлений), и проверьте его с помощью производственного сертификата, поскольку, похоже, нет среды песочницы для сберегательной книжки (см. этот ответ). - person Baris Akar; 17.11.2016
comment
Спасибо, парни! Я попробую ваш код, и сертификат в порядке, он 100%. - person Tom; 18.11.2016
comment
Я попытался решить эту проблему, но возникла другая. Пожалуйста. проверьте мои обновления в моем вопросе. Большое спасибо! - person Tom; 18.11.2016
comment
@Tom: попробуйте передать false для параметра validateIsApnsCertificate конструктора ApnsConfiguration, поскольку существует проверка сертификата, которая не обрабатывает сертификат pushkit: var config = new ApnsConfiguration(ApnsConfiguration.ApnsServerEnvironment.Production, certificateFile, certificateFilePwd, false); - person Baris Akar; 21.11.2016
comment
Установлено значение false - person Tom; 21.11.2016
comment
@Tom: Я не знаю, в чем может быть проблема, кроме этого, взгляните на это вопрос, может быть, есть полезная информация для вас, хотя этот пользователь использовал старую версию PushSharp ... - person Baris Akar; 21.11.2016