2016-11-25 54 views
3

從Firebase控制檯發送通知時工作得很好,但從API發送時不起作用。即使結果顯示成功: {「multicast_id」:5946406103096345260,「success」:1,「failure」:0,「canonical_ids」:0,「results」:[{「message_id」:「0:1480093752122166%13791f60f9fd7ecd 「}]}在控制檯上工作但不在API上的Google Firebase通知

反正繼承人的代碼:

<?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

忘了補充:我還需要包括'priority'字段,否則我的推送通知沒有在iOS上收到。例如。頂級層次上的「優先級」:「高」 –

相關問題