Отправка пушей Firebase через форму PHP — php html firebase

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Загрузка...

Вопрос:


Есть работающий код, но хотелось бы прикрутить форму заполнения для отправки.
Пробовал, пуши якобы уходят но в приложение не приходят.
Прилагаю код, хотелось чтобы заполнялись поля:
«type»
«mainId»
«title»
‘message’

Если есть кто поставит меня на путь истинный хотя бы примером, буду очень благодарен!

<meta charset="utf-8">
<?php
echo "<div style='margin:auto;width:60%;text-align:center;'>";
echo "<hr>";
echo "<h2>Отправка Push уведомления на приложение B2C</h2>";
echo "<hr>";
if (isset($_POST["pushSubmit"])) {
goPushforBtoC();
echo "<h2>PUSH ОТПРАВЛЕН</h2>";
} else {
echo "<form method='post' action='' onsubmit='return confirm("Вы точно 
хотите отправить Push уведомление?");'>";
echo "<input type='submit' name='pushSubmit' value='Отправить Push'>";
echo "</form>";
}
echo "</div>";



function sendNotificationsAndroid($fields) {
$headersAndroid =
    array(
        'Authorization: key=',
        'Content-Type: application/json'
    );

$chAndroid = curl_init();
curl_setopt($chAndroid, CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send');
curl_setopt($chAndroid, CURLOPT_POST, true);
curl_setopt($chAndroid, CURLOPT_HTTPHEADER, $headersAndroid);
curl_setopt($chAndroid, CURLOPT_RETURNTRANSFER, true);
curl_setopt($chAndroid, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($chAndroid, CURLOPT_POSTFIELDS, json_encode($fields));
curl_exec($chAndroid);
curl_close($chAndroid);
}


function sendNotificationsIOS($fields) {
$headersIos =
    array(
        'Authorization: key=',
        'Content-Type: application/json'
    );

$chIos = curl_init();
curl_setopt($chIos, CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send');
curl_setopt($chIos, CURLOPT_POST, true);
curl_setopt($chIos, CURLOPT_HTTPHEADER, $headersIos);
curl_setopt($chIos, CURLOPT_RETURNTRANSFER, true);
curl_setopt($chIos, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($chIos, CURLOPT_POSTFIELDS, json_encode($fields));
curl_exec($chIos);
curl_close($chIos);
}


function goPushforBtoC() {
 $fieldsAndroid = array(
  'fr' => array(
          "to" => "/topics/testEN",
          "data" => array(
              "title" => 'Trololo',
              'message' => '  Apprendre encore plus!'
          ),
      )
  );
 foreach ($fieldsAndroid as $value) {
  sendNotificationsAndroid($value);
 }



  $fieldsIos = array(
      'en' => array(
          "to" => "/topics/testEN",
          "data" => array(
              "type" => "main"
          ),
          "notification" => array(
              "title" => 'Trololo',
              "body" => '  Learn more!',
              "badge" => 1
          )
      ),
  );
  foreach ($fieldsIos as $value) {
  sendNotificationsIOS($value);
  }

    }

      ?>

Автор вопроса: Тарас Лейтар

Вот пример рабочей логики отправки пуш уведомлений։

<?php
$message = array(
    'title' => 'TITLE',
    'body' => 'MESSAGE',
    'sound' => 'default',
    'badge' => 1
);


$tokens = array( 'APP_TOKEN_HERE' );


$message_status = send_notification( $tokens, $message );




public function send_notification( $tokens, $notification ) {
    header( 'Content-Type: application/json; charset=utf-8' );

    $arrayToSend = array( 'registration_ids' => $tokens, 'notification' => $notification, 'data' => $notification, 'priority' => 'high' );
    $json = json_encode( $arrayToSend );


    $headers = array();
    $headers[] = 'Content-Type: application/json';
    $headers[] = 'Authorization: key=YOUR_KEY';




    $ch = curl_init( "https://fcm.googleapis.com/fcm/send" );
    curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, "POST" );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
    curl_setopt( $ch, CURLOPT_POSTFIELDS, $json );
    curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers );
    $response = curl_exec( $ch );
    curl_close( $ch );

    $response = json_decode( $response, true );
    return $response;


}

?>

Источник

Вам также может быть интересно:

Drag and Drop UWP — c# xaml mvvm
Вопрос: Нужно иметь возможность добавлять изображения в приложение путем перетаскивания из файловой системы У Grid включил AllowDrop. Но как добавить перетаскиваемые изображения в коллекцию? Т.к. те ...
Растягивание Высоты , Резина — html css html5
Вопрос: Здравствуйте! Реализовал резиновый дизайн. Растягивается ширина, но длина по % не растягивается. Возможно ли это реализовать? Или так и задумано, растягивание только на ширину ...
Jquery position().left Как быть на мобильниках? — javascript jquery css
Вопрос: На мобильных устройствах, если зумишь экран, position всегда разный. $('g').position().left Как сделать так, чтобы он не менял свои значения? Автор вопроса: ...
Jquery position().left Как быть на мобильниках? — javascript jquery css
Вопрос: На мобильных устройствах, если зумишь экран, position всегда разный. $('g').position().left Как сделать так, чтобы он не менял свои значения? Автор вопроса: ...
requestAnimation и очередность отрисовки — javascript canvas
Вопрос: Здравствуйте! Реализовал 2D игру и в Edge работает все плавно и круто, но в Firefox'e подвисает, сказали, что нужно сделать, чтобы раз-два момент и все ...
Контекстное/всплывающее меню в Android — java android popup
Вопрос: Есть ли техническая возможность сделать приложение, добавляющее свое контекстное или всплывающее меню в любом месте системы? Хочу, чтобы при выделении любого текста появлялась дополнительная кнопка ...
Контекстное/всплывающее меню в Android — java android popup
Вопрос: Есть ли техническая возможность сделать приложение, добавляющее свое контекстное или всплывающее меню в любом месте системы? Хочу, чтобы при выделении любого текста появлялась дополнительная кнопка ...
Завершить службы циклом — c# windows-service
Вопрос: Можно ли остановить службы циклом? У меня есть список служб, занёс их в List List<string> name = new List<string> { "AdobeARMservice", "RemoteRegistry", "TermService", "Messenger", "SSDPSRV", ...
Завершить службы циклом — c# windows-service
Вопрос: Можно ли остановить службы циклом? У меня есть список служб, занёс их в List List<string> name = new List<string> { "AdobeARMservice", "RemoteRegistry", "TermService", "Messenger", "SSDPSRV", ...
RecyclerView — разная разметка — android recyclerview
Вопрос: Смотрел, я смотрел в сторону RecyclerView и наконец решил кинуть ListView и на тебе! В "плохом прошлом" мой ListView использовался для двух разметок. Сейчас я ...
RecyclerView — разная разметка — android recyclerview
Вопрос: Смотрел, я смотрел в сторону RecyclerView и наконец решил кинуть ListView и на тебе! В "плохом прошлом" мой ListView использовался для двух разметок. Сейчас я ...
Как правильно передать массив аргументом для пользовательской функции — php
Вопрос: Если не брать в функцию все это, тогда результат работает. А если вот так в функции все выполнять, тогда PHP ругается: «Invalid ...
Как правильно передать массив аргументом для пользовательской функции — php
Вопрос: Если не брать в функцию все это, тогда результат работает. А если вот так в функции все выполнять, тогда PHP ругается: «Invalid ...
ViewPager внутри ViewPager — такие матрешки работают? — android viewpager
Вопрос: Доброго времени суток. Назрела новая задача. Есть каталог мастеров. При выборе конкретного мастера открывается его страница (активити с ViewPager), и теперь мастеров можно перелистывать свайпом. ...
Почему id всегда 1 Yii2 — yii авторизация
Вопрос: Использую все как по документации. Для получения информации о пользователе использую $identity = $model->findOne(]); И каким бы не был email, id пользователя всегда ...

Оставьте ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *