2016-11-25 14 views
3

通知はFirebaseコンソールから送信されたときに正常に機能しますが、APIから送信されたときは機能しません。結果が成功した場合: {"multicast_id":5946406103096345260、 "成功":1、 "失敗":0、 "canonical_ids":0、 "results":[{"message_id": "0:1480093752122166%13791f60f9fd7ecd 「}]}とにかくコードをHERESGoogle Firebase通知はコンソールでは動作しますが、APIでは動作しません

<?php 
// Payload data you want to send to Android device(s) 
// (it will be accessible via intent extras)  
$data = array('title' => 'Notification Title' ,'message' => 'Hello World!'); 

// The recipient registration tokens for this notification 
$ids = array('TOKEN'); 

// Send push notification via Google Cloud Messaging 
sendPushNotification($data, $ids); 

function sendPushNotification($data, $ids) 
{ 
    // Insert real GCM API key from the Google APIs Console   
    $apiKey = 'API_KEY'; 

    // Set POST request body 
    $post = array(
        'registration_ids' => $ids, 
        'data'    => $data, 
       ); 

    // Set CURL request headers 
    $headers = array( 
         'Authorization: key=' . $apiKey, 
         'Content-Type: application/json' 
        ); 

    // Initialize curl handle  
    $ch = curl_init(); 

    // Set URL to GCM push endpoint  
    curl_setopt($ch, CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send'); 

    // Set request method to POST  
    curl_setopt($ch, CURLOPT_POST, true); 

    // Set custom request headers  
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 

    // Get the response back as string instead of printing it  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

    // Set JSON post data 
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post)); 

    // Actually send the request  
    $result = curl_exec($ch); 

    // Handle errors 
    if (curl_errno($ch)) 
    { 
     echo 'GCM error: ' . curl_error($ch); 
    } 

    // Close curl handle 
    curl_close($ch); 

    // Debug GCM response  
    echo $result; 
} 

?> 

答えて

5

FCMのみnotificationペイロードを使用するときにプッシュ通知を送信し、例えば:

{ 
    "to: "registration token", 
    "priority": "high", 
    "notification": { 
    "title": "Title", 
    "text": "Text" 
    }, 
    ... 
} 

}

参照してください。またFirebase Docs

+1

忘れてしまった:私はまた、優先順位フィールドを含める必要がありました。そうでないと、プッシュ通知がiOSで受信されませんでした。例えば。 ''優先度 '':高位 '''トップレベル階層 –

関連する問題