symfony2: попытка отправки / получения push-уведомлений (GCM) с контроллера. Код работает из отдельного PHP-скрипта для их отправки / получения

#android #symfony #push-notification #google-cloud-messaging

#Android #symfony #push-уведомление #google-cloud-messaging

Вопрос:

У меня есть приведенный ниже код для отправки push-уведомлений GCM. Все работает нормально. Теперь я только что добавил его в действие symfony, но когда я запрашиваю действие, push-уведомление никогда не отправляется.

После запроса действия на моем локальном хосте счетчик загрузки внутри вкладки поворачивается и поворачивается .., а на моем удаленном хосте я получаю ошибку 500, но я не могу найти никакой ошибки в журналах Apache или symfony logs.

У меня такая же проблема с использованием этого пакета: https://github.com/richsage/RMSPushNotificationsBundle

Любая помощь?

     $message = "the test message";
    $tickerText = "ticker text message";
    $contentTitle = "content title";
    $contentText = "content body";

    $registrationId = 'abcdef...';
    $apiKey = "1234...";

    $headers = array("Content-Type:" . "application/json", "Authorization:" . "key=" . $apiKey);

    $data = array(
        'data' => $messageData,
        'registration_ids' => $registrationIdsArray
    );

    $ch = curl_init();

    curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers );
    curl_setopt( $ch, CURLOPT_URL, "https://android.googleapis.com/gcm/send" );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0 );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
    curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($data) );

    $response = curl_exec($ch);
    curl_close($ch);

    return $response;
  

Комментарии:

1. $registrationIdsArray и $messageData не существует. Это опечатка?

2. @dbrumann Да, произошла опечатка. Теперь он работает, спасибо!

Ответ №1:

$MessageData и $ registrationIdsArray не существуют. и проверьте, является ли ключ api ключом api браузера.

Комментарии:

1. и, пожалуйста, не предоставляйте ключ api и регистрационный идентификатор, когда вы размещаете код в Сети. Есть вероятность, что он может быть использован неправильно. Вы можете отредактировать сообщение и удалить код api..