2017-12-03 8 views
0

無効な登録ID FCM

トークン

無効な登録は、私は、MySQLデータベースからトークンを取得します。返されたデータがデータベースと一致することを確認しました。すべてが完璧だと思われますが、私は私の誤りを見つけることができません。

どのように私はこのコードを修正するか、デバッグすることができます

解決
function send_android_notification($registration_ids, $message) { 
    //print_r($registration_ids); 
    //print_r($message); 
    //exit; 
    define("GOOGLE_API_KEY", "AAAABoqI4ac:APA91bEMNO81wwRARcQftyBhIBU1U4Bq6rLKeRZDLOPAQu-9fk8y_6bOsZWnw2JEq-uwDJXDij1SjGPJtnwG6QO_IRZ54Gbbjfp9-izJ_a7DnLoTHD9Ot6lod7C-wLaYkH2Xl6l8iR8z"); 
    $fields = array(
     'registration_ids' => array($registration_ids), 
     'data' => $message, 
    ); 
    $headers = array(
     'Authorization:key=' . GOOGLE_API_KEY, // FIREBASE_API_KEY_FOR_ANDROID_NOTIFICATION 
     'Content-Type: application/json' 
    ); 
    // Open connection 
    $ch = curl_init(); 
    // Set the url, number of POST vars, POST data 
    curl_setopt($ch, CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send'); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    // Disabling SSL Certificate support temporarly 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); 
    //echo json_encode($fields); 
    //exit; 
    // Execute post 
    $result = curl_exec($ch); 
    if ($result === false) { 
     die('Curl failed:' . curl_errno($ch)); 
    } 
    // Close connection 
    curl_close($ch); 
    return $result; 
} 

答えて

0

データベーステーブルにモバイル登録トークンが格納されているフィールドの長さを確認します。トークン番号の長さが200を超えるため、200を超える値を設定します。APIサーバーキーフィールドは、firebaseクラウドメッセージングによって提供されるレガシーサーバーキーである必要があります。

下記の私の作業コード!

function send_android_notification($registration_ids, $message) { 
    //print_r($registration_ids); 
    //print_r($message); 
    //exit; 
    define("GOOGLE_API_KEY", "AIzaSyDfwSXWRD5tf*******************"); //legacy server key 
    $fields = array(
     'registration_ids' => $registration_ids, 
     'notification' => $message, //note: body & title fileds must be specified for the message or your only get just the vibration but the notification 
    ); 
    $headers = array(
     'Authorization: key=' . GOOGLE_API_KEY, // FIREBASE_API_KEY_FOR_ANDROID_NOTIFICATION 
     'Content-Type: application/json' 
    ); 
    //Open connection 
    $ch = curl_init(); 
    //Set the url, number of POST vars, POST data 
    curl_setopt($ch, CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send'); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    // Disabling SSL Certificate support temporarly 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); 
    //echo json_encode($fields); 
    //print_r($headers); 
    //exit; 
    //Execute post 
    $result = curl_exec($ch); 
    if ($result === false) { 
     die('Curl failed:' . curl_errno($ch)); 
    } 
    // Close connection 
    curl_close($ch); 
    return $result; 
} 
関連する問題