php
  • mysql
  • firebase
  • firebase-cloud-messaging
  • firebase-notifications
  • 2016-10-12 7 views 0 likes 
    0

    Firebase経由で通知を送信しようとしていますが、機能しません。 MySQLに保存されているFirebase IDを持つ登録ユーザ全員に送信したいだけです。Firesbase通知を複数のユーザに送信

    EDIT

    ここでは以下のコードです。

    <?php $message="test message"; $title="Test Title"; 
    $path_to_fcm='https://fcm.googleapis.com/fcm/send'; 
    $server_key="AIzaSyxxxxxxxxxxxxxxxxXxxxsk"; 
    
    $con = mysqli_connect('localhost','username','passs','db'); 
        $email ="hii"; $sql = "SELECT * FROM users WHERE email = '$email'"; 
        $res = mysqli_fetch_array(mysqli_query($con,$sql));  $key= 
    $res['token'];  $headers=array(
           'Authorization:key='.$server_key, 
           'Content-Type:application/json' 
           ); $fields=array('to'=>$key,'notification'=>array('title'=>$title,'body'=>$message)); 
              $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($con); 
    
    ?> 
    

    これはうまくいきますが、1人のユーザーに送信するためだけです。私が必要とするのは、複数のユーザーに送信することです。

    +0

    火力基地を正しく設定したことを実証できますか?どのような文書に従っていますか?他に何を試しましたか? –

    +0

    エラーが発生しましたか?問題は何ですか? –

    +0

    あなたが求めていることはまだ明確ではありません。複数の端末に送信する方法を尋ねていますか? –

    答えて

    0

    複数のデバイスに送信できる方法は3つあります。 toの代わりにregistration_idsパラメータを使用してください。このパラメータごとに最大1000個の登録トークンが存在することに注意してください。登録トークンが1000を超える場合は、バッチリクエスト(リクエストごとに1000件)を行う必要があります。

    そして可能重複ポストで私の答えからなど)

    ご利用の場合にも応じて、Topic MessagingDevice Group Messagingのいずれかを使用することができます。

    トピックメッセージング

    Firebaseクラウドメッセージング(FCM)トピックメッセージング、あなたは、特定のトピックにオプトインしている複数のデバイスにメッセージを送信することができます。パブリッシュ/サブスクライブモデルに基づいて、トピックメッセージングは​​、各アプリに対して無制限のサブスクリプションをサポートします。必要に応じてトピックメッセージを作成し、Firebaseはメッセージルーティングを処理し、適切なデバイスにメッセージを確実に配信します。

    たとえば、地元の天気予報アプリのユーザーは、「厳しい天気予報」のトピックを選択して、特定の地域を脅かす嵐の通知を受け取ることができます。スポーツアプリのユーザーは、好きなチームのライブゲームのスコアで自動更新を購読することができます。開発者は、正規表現に一致するトピック名:"/topics/[a-zA-Z0-9-_.~%]+"を選択できます。デバイスグループメッセージングで


    デバイスグループメッセージング

    、アプリサーバは、グループに属するデバイス上で動作しているアプリの複数のインスタンスを単一のメッセージを送信することができます。 通常、「グループ」は、単一のユーザに属する異なるデバイスのセットを指します。グループ内のすべてのデバイスは共通の通知キーを共有します。これはFCMがグループ内のすべてのデバイスへのメッセージをファンアウトするために使用するトークンです。

    デバイスグループメッセージングを使用すると、グループ内のすべてのアプリケーションインスタンスが最新のメッセージング状態を反映することができます。メッセージを通知キーにダウンストリームで送信することに加えて、デバイスがアップストリームメッセージをデバイスグループに送信できるようにすることもできます。デバイスグループメッセージは、XMPPまたはHTTP接続サーバーで使用できます。データペイロードの制限は、iOSデバイスに送信する場合は2KB、他のプラットフォームの場合は4KBです。

    notification_keyのメンバーの最大数は20です。


    詳細については、あなたはSending to Multiple Devices in FCMドキュメントをチェックアウトすることができます。

    +0

    あなたはトピックメッセージングのPHP&アンドロイドコードをPHPにすることができます。 – Lenin

    +0

    @レニンあなたはシナリオを詳述できますか?独自のApp Serverをお持ちですか? –

    +0

    はい、私は自分のアプリケーションサーバーを持っており、上記のコードを使って1つのデバイスにいくつかのプッシュ通知を送信しましたが、これは成功し、現在のシナリオになります 多くのデバイスにプッシュ通知を送ることができるPHPコードが必要です。 私はあなたがそれを送った上記の文書を読んで、私はコードをフレームすることができません。私に "トピックメッセージ"に関する完全なコードを教えてください。 私の悪い英語を申し訳ありません。 – Lenin

    関連する問題