1

FCMを使用してMySSQLとPHPを使用してAndroidにプッシュ通知を送信しています。これは私のコードです:iOS Swift - FCMを使用してPHPから直接通知を送信することはできますか?

<?php 
    function send_notification ($tokens, $message) 
    { 
     $url = 'https://fcm.googleapis.com/fcm/send'; 
     $fields = array(
      'registration_ids' => $tokens, 
      'data' => $message 
      ); 
     $headers = array(
      'Authorization:key = YOUR_KEY ', 
      'Content-Type: application/json' 
      ); 
     $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_SSL_VERIFYHOST, 0); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); 
     $result = curl_exec($ch);   
     if ($result === FALSE) { 
      die('Curl failed: ' . curl_error($ch)); 
     } 
     curl_close($ch); 
     return $result; 
    } 

    $conn = mysqli_connect("localhost","root","","fcm"); 
    $sql = " Select Token From users"; 
    $result = mysqli_query($conn,$sql); 
    $tokens = array(); 
    if(mysqli_num_rows($result) > 0){ 
     while ($row = mysqli_fetch_assoc($result)) { 
      $tokens[] = $row["Token"]; 
     } 
    } 
    mysqli_close($conn); 
    $message = array("message" => " FCM PUSH NOTIFICATION TEST MESSAGE"); 
    $message_status = send_notification($tokens, $message); 
    echo $message_status; 
?> 

しかし、iOS(Swift)デバイスで通知を送信しようとしましたが動作しません。トークン(FIRInstanceID.instanceID().token())を取得し、send.php、上記のコード)から通知を送信しようとしましたが、動作しません。

Firebase Consoleから個別/グループ/トピックの通知を送信し、完全に機能しました。なぜそれがfile.phpから機能しないのですか?

助けてください!

答えて

0

iOSをFCM経由で送信するには、通知キーをペイロードに定義する必要があります。 docsで説明されているので、そこを見てください。ここで

https://firebase.google.com/docs/cloud-messaging/ios/send-multipleは、私はすべてのという名前のトピックに送信しています上記の例の一例要求

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

です。トピックを作成し、ユーザーを関連トピックに登録する必要があります。 $ fields変数に必要な変更を加える必要があります。

関連する問題