php
  • android
  • curl
  • firebase
  • firebase-cloud-messaging
  • 2016-08-30 3 views 0 likes 
    0

    Я пытаюсь отправить уведомление с PHP на Android-приложение. Мои PHP-коды здесь.Ошибка уведомления об ошибке Firebase PHP + Android

    <?php 
    require "int.php"; 
    $message = $_POST['message']; 
    $title = $_POST['title']; 
    $path_to_fcm = 'https://fcm.googleapis.com/fcm/send'; 
    $server_key = "1:485869546397:android:bd503a78b6c26c35"; 
    $sql = "select fcm_token from fcm_info"; 
    $result = mysqli_query($con,$sql); 
    $row = mysqli_fetch_row($result); 
    $key = $row[0]; 
    $headers = array(
        'Authorization:key=' .$server_key, 
        'Content-Type:application/json' 
    ); 
    
    $fields = array('to'=>$key, 
        'notification'=>array('title'=>$title,'body'=>$message)); 
    
    $payload = json_encode($fields); 
    
    echo $payload; 
    
    $curl_session = curl_init(); 
    curl_setopt($curl_session, CURLOPT_URL, $path_to_fcm); 
    curl_setopt($curl_session, CURLOPT_POST, true); 
    curl_setopt($curl_session, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($curl_session, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($curl_session, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($curl_session, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); 
    curl_setopt($curl_session, CURLOPT_POSTFIELDS, $payload); 
    $result = curl_exec($curl_session); 
    echo $result; 
    ?> 
    

    и я опубликовать данные в mycode я дать этот выход: enter image description here

    И я могу отправить уведомление от FireBase консоли. И код сервера id правильный. Я не мог, в чем дело? Можете ли вы дать совет или любой способ решить эту проблему? Спасибо ...

    +0

    50x ошибки обычно означают, что проблема на стороне сервера. Здесь вы можете указать проблему с файлом: https://firebase.google.com/support/ – pawelo

    +0

    Созданный вами орган ответа на входящий канал не содержит некоторых полей, определенных в [documentation] (https://firebase.google .com/docs/cloud-messaging/http-server-ref # interp-downstream), так что вам будет лучше связаться с поддержкой firebase, как рекомендовано @pawelo – GeorgeLBA

    ответ

    1

    Это проверенный код, и вы можете отправить уведомление с помощью нижеприведенного кода.

    public function sendGCM($message, $registration_ids) { 
        //FCM URL 
        $url = "https://fcm.googleapis.com/fcm/send"; 
    
        //prepare data 
        $fields = array (
         'registration_ids' => array ($registration_ids), 
         'data' => array ("message" => $message) 
        ); 
        $fields = json_encode ($fields); 
    
        //header data 
        $headers = array ('Authorization: key=<YOUR_API_KEY>', 'Content-Type: application/json'); 
    
        //initiate curl request 
        $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, $fields); 
    
        // execute curl request 
        $result = curl_exec ($ch); 
    
        //close curl request 
        curl_close ($ch); 
    
        //return output 
        return $result; 
    } 
    
    Смежные вопросы