Intereting Posts
jaxl не может подключиться к Prosody Вставить tr после каждого третьего цикла YII, как обрабатывать пользовательскую страницу ошибки 404 вместе с другими страницами ошибок Каков хороший способ создания системы URL-адресов SEO, созданной на PHP? Шебанг #! unrecognized в Ubuntu, Файл, созданный в Windows7 | Устранение неполадок при кодировании Использование Zend_Auth для защиты всех контроллеров Joomla 1.6 Внешняя проблема взаимодействия с PHP Флажок в цикле while Глобальный или Singleton для подключения к базе данных? Задайте расположение файла конфигурации по умолчанию php-fpm Надежно оценить простые математические данные Сохранение файла .xls с помощью fwrite Как я могу проверить с регулярным выражением, что строка содержит только определенные допустимые символы? Запрос на выбор записей из базы данных, созданной за последние 24 часа Невозможно вставить в базу данных MySQL с помощью PDO … Нет ошибок

gcm push-уведомление: первый успех, затем не зарегистрированный в IOS

После всех проходов для получения уведомления с облачным почтовым сообщением google в IOS, но у меня есть эта проблема: я отправляю сообщение в php для уведомления с ключом сервера и токеном устройства, в первый раз ответ «успех», но не получает ничего на устройстве , во второй раз и в последующие моменты времени ответ «notRegistered». Я повторяю все проходы: создайте новый ключ в цепочке ключей, загрузите профиль подготовки, загрузите .cer, установите в цепочку ключей, экспортируйте .p12 и вставьте сертификаты на платформу Google для «GoogleService-Info.plist» и перезагрузите regId устройства на php , но ответ всегда таков. Помоги мне, пожалуйста.

Это мой php:

$apiKey = "server key"; $regId = 'registration token'; $url = 'https://gcm-http.googleapis.com/gcm/send'; $post = '{"to" : "' . $regId . '", "content_available" : true, "priority" : "high", "notification": {"title" : "test", "body" : "test"}}'; $headers = array( "Authorization:key=$apiKey", 'Content-Type:application/json' ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($ch); if ( curl_errno( $ch ) ) { echo 'GCM error: ' . curl_error( $ch ); } curl_close( $ch ); echo $result; 

Related of "gcm push-уведомление: первый успех, затем не зарегистрированный в IOS"

Собственный ответ Op, снятый с отредактированного вопроса:

Проблема была в старой учетной записи без нового профиля подготовки, перейдите по адресу: XCode Accounts -> Apple IDs и просмотрите детали -> Загрузить все. Для этого перейдите по адресу: Цели -> название проекта -> Настройки сборки -> Поиск «Профиль профайла» -> измените автоматическое и выберите профиль профилей, используемый для сертификатов. Тайна – причина xcode, которая не предупреждает меня, не находит правильный профиль Provisioning Profile (другой идентификатор пакета).

Мои пять центов Если у вас есть ошибка «notRegistered», только когда приложение находится в производстве, это была моя ошибка: я пропустил это в параметрах регистрации, представленных в GCM:

 [[GGLInstanceID sharedInstance] tokenWithAuthorizedEntity:_gcmSenderID scope:kGGLInstanceIDScopeGCM options:_registrationOptions handler:self.registrationHandler]; 

Существует опция kGGLInstanceIDAPNSServerTypeSandboxOption, которая должна быть установлена ​​на NO в случае производства

Надеюсь, поможет!

Некоторое время назад мы также получили ошибку NotRegistered при попытке отправить второй запрос. Но для моего опыта проблема не на стороне ios. Проблема заключается в параметрах отправленных сообщений.

Попробуйте отправить все необходимые и необязательные параметры. Возможно, вы хотите попробовать PHP-скрипт на этом Q & A

Совет. Отправка параметра «content_available как true, приоритет как высокий и уведомление как данные» может помочь.

Ниже примера Json снова и снова получал ios-устройства.

 "Content-Type" is "application/json" { "registration_ids":[ "<reg_id1>", "<reg_id2>", ], "priority":"high", "content_available":true, "time_to_live":2419200, "data":{ "message":"Test 15:46:49", "title":"" }, "notification":{ "title":"", "body":"Test 15:46:49", "sound":"default", "badge":"1" } } по "Content-Type" is "application/json" { "registration_ids":[ "<reg_id1>", "<reg_id2>", ], "priority":"high", "content_available":true, "time_to_live":2419200, "data":{ "message":"Test 15:46:49", "title":"" }, "notification":{ "title":"", "body":"Test 15:46:49", "sound":"default", "badge":"1" } } 

Изменить 2: Попробуйте это;

  $apiKey = "server key"; $regId = 'registration token'; $url = 'https://gcm-http.googleapis.com/gcm/send'; $post = '{"to" : "' . $regId . '","priority":"high","content_available":true,"time_to_live":2419200,"data":{"message":"GCM Notifier:Message Success","title":"GCM Notifier:Title Success"},"notification":{"title":"GCM Notifier:Title Success","body":"GCM Notifier:Message Success","sound":"default","badge":"1"}}'; $headers = array( "Authorization:key=$apiKey", 'Content-Type:application/json' ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($ch); if ( curl_errno( $ch ) ) { echo 'GCM error: ' . curl_error( $ch ); } curl_close( $ch ); echo $result; по  $apiKey = "server key"; $regId = 'registration token'; $url = 'https://gcm-http.googleapis.com/gcm/send'; $post = '{"to" : "' . $regId . '","priority":"high","content_available":true,"time_to_live":2419200,"data":{"message":"GCM Notifier:Message Success","title":"GCM Notifier:Title Success"},"notification":{"title":"GCM Notifier:Title Success","body":"GCM Notifier:Message Success","sound":"default","badge":"1"}}'; $headers = array( "Authorization:key=$apiKey", 'Content-Type:application/json' ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($ch); if ( curl_errno( $ch ) ) { echo 'GCM error: ' . curl_error( $ch ); } curl_close( $ch ); echo $result;