0

Androidベースのデバイスのmysqlデータベースに登録されているすべてのトークンにFirebase通知を送信したいのですが、通知を送信できるように受信者トークンの配列を作成する通常のPHP方法を使用しています私は登録されたデバイスのうち、それを受け取ったという通知を送る。もし私のコードに基づいてそれをどこでどのように使うべきか、私のコードと何が問題なのか、どのようにすればいいのですか?私はそれを修正することはできますか?ここ登録された複数のAndroidデバイスにFirebase通知を送信する

//が

<?php 
    $message =$_POST['message']; 
    $title=$_POST['title']; 
//firebase server url 
    $path_to_fcm='https://fcm.googleapis.com/fcm/send'; 
    // Here is the server_key 
    $server_key="##########################"; 
    $conn = mysqli_connect("localhost","db_username","password","database_name"); 
    $sql = "select * from fcm_info"; 
    $result = mysqli_query($conn,$sql); 
    //HERE IS THE TOKEN 
$tokens = array(); 
if(mysqli_num_rows($result) > 0){ 
    while ($row = mysqli_fetch_assoc($result)) { 
     $tokens[] = $row["fcm_token"]; 
    } 
} 
/// HERE IS THE KEY SINGLE RECIPIENT IT WORKS FINE WHEN I INTRODUCE TO THE  RECIPIENT FIELD("to" field) 
$key="############"; 
$headers= array(
    'Authorization:key='.$server_key, 
    'Content-Type:application/json' 
      ); 
       // here use $tokens as the replace $key 
$fields= array('to'=>$token, 
'notification'=>array('title'=>$title,'body'=>$message, 
    'click_action'=>'com.jrcomjk.firebasemysql_TARGET_NOTIFICATION' 
)); 
    $payload= json_encode($fields); 
    $curl_session= curl_init(); 
    curl_setopt($curl_session,CURLOPT_URL,$path_to_fcm); 
    curl_setopt($curl_session,CURLOPT_POST,true); 
    curl_setopt($curl_session,CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($curl_session,CURLOPT_RETURNTRANSFER,true); 
    curl_setopt($curl_session,CURLOPT_SSL_VERIFYPEER,false); 
    curl_setopt($curl_session,CURLOPT_IPRESOLVE,CURL_IPRESOLVE_V4); 
    curl_setopt($curl_session,CURLOPT_POSTFIELDS,$payload); 
     $result =curl_exec($curl_session);  
     curl_close($curl_session); 
    mysqli_close($conn); 
?> 
+0

http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/これを確認してください –

+0

Firebaseコンソールからのシングルデバイス通知が機能しています?まず、Firebaseコンソールから単一のデバイス通知を確認してから、さらに進んでください –

+0

エラー応答はありますか? *すべてのユーザに*を送ることを目指していますが、あなたのコードでは、単一のトークンに使用される 'to'パラメータを使用しています。複数のデバイスに送信するために使用できるものについては、私の[ここをクリックしてください](http://stackoverflow.com/a/39547590/4625829)を参照してください。 –

答えて

0

通知を送信するためのコードであるあなたのコードは、ちょうどあなたがfirebaseコンソールに正しくfirebaseプロジェクトを設定し、それに応じてサーバキーを入れているが作る、動作するはずです。

+0

をチェックしてみましょう私はそれが正常に動作し、ことを行っている正常に動作しますコードで受信者トークンを定義すると、問題はデータベースから登録されたトークンを使用している@ aznelite89 – f2k

+0

サードパーティのデータベースからの登録トークンを使用しても、私は以前にこのようなプロジェクトを行っていました – aznelite89

関連する問題