2017-06-07 25 views
2

私はFCMプッシュ通知を送信するためにPHPサーバを使用しています。同時に複数のトピックにプッシュ通知を送信する方法を知りたいFCMプッシュ通知を複数のトピックに送信する方法

ここに私のコードです。

function sendPush($topic,$msg){ 
$API_ACCESS_KEY = '...'; 
$msg = array 
(
    'msg' => $msg 
); 

$fields = array('to' => '/topics/' . $topic, 'priority' => 'high', 'data' => $msg); 
$headers = array 
(
'Authorization: key=' . $API_ACCESS_KEY, 
'Content-Type: application/json' 
); 
$ch = curl_init(); 
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_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); 
$pushResult = curl_exec($ch); 
curl_close($ch); 
} 

答えて

1

複数のトピックに送信するにはconditionキーを使用します。例えば

{ 
    "condition": "'dogs' in topics || 'cats' in topics", 
    "priority" : "high", 
    "notification" : { 
    "body" : "This is a Firebase Cloud Messaging Topic Message!", 
    "title" : "FCM Message", 
    } 
} 

これは、トピック「犬」または「猫」に加入デバイスにメッセージを送信します。 FCM docsから

関連する引用:

は複数のトピックの組み合わせに送信するには、アプリケーションサーバは、ターゲット・トピックを指定するブール条件に条件キーを設定します。

2つのブール条件に制限されています。つまり、最大3つのトピックに1つのメッセージを送信できます。

+0

ご返信ありがとうございます。フィールドには何を使用すべきですか? ( 'to' => '/ topics/foo')。 '/ topics/foo/bar/etc'のような直接的な方法はありません – user934820

+0

@ user934820何もありません。この場合、そのフィールドは含まれません。 – Eran

+0

よろしくお願いします。どうもありがとうございました。 – user934820

関連する問題