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

    Firebase를 통해 알림을 보내려고하지만 작동하지 않습니다. MySQL에 저장된 Firebase ID로 등록 된 모든 사용자에게 보내고 싶습니다.여러 사용자에게 Firebasebase 알림 보내기

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

    괜찮습니다. 단 한 명의 사용자에게만 전송됩니다. 내가 필요한 것은 여러 사용자에게 보내는 것입니다.

    +0

    파이어베이스를 올바르게 구성했음을 보여줄 수 있습니까? 다음 문서는 무엇입니까? 그 외에 또 무슨 짓을 한거야? –

    +0

    오류가 있습니까? 그게 무슨 문제 야? –

    +0

    당신이 요구하는 것이 아직 명확하지 않습니다. 여러 기기로 보내는 방법에 대해 묻고 있습니까? –

    답변

    0

    여러 장치로 보낼 수있는 방법은 세 가지가 있습니다. to 대신 registration_ids 매개 변수를 사용하십시오. 이 매개 변수 당 최대 1000 개의 등록 토큰 수가 있음에 유의하십시오. 등록 토큰이 1000 개 이상인 경우 일괄 요청 (각 요청 당 1000 개)을 수행해야합니다.

    (그리고 가능한 중복 포스트에서 내 대답에서로) 사용 사례에도 따라

    , 당신은 Topic Messaging 또는 Device Group Messaging 중 하나를 사용할 수 있습니다.

    주제 메시징

    중포 기지 클라우드 메시징 (FCM) 주제 메시지는 특정 주제하도록 선택한 여러 장치에 메시지를 보내 당신을 수 있습니다. 주제/게시 모델을 기반으로 토픽 메시징은 각 앱에 대해 무제한 구독을 지원합니다. 필요에 따라 주제 메시지를 작성하고 Firebase는 메시지 라우팅을 처리하고 올바른 장치에 메시지를 안정적으로 전달합니다.

    예를 들어, 지역 날씨 예보 앱 사용자는 "악천후 경보"주제를 선택하고 특정 지역을 위협하는 폭풍에 대한 알림을받을 수 있습니다. 스포츠 앱 사용자는 자신이 좋아하는 팀의 실시간 경기 점수에 자동 업데이트를 신청할 수 있습니다. 개발자는 정규 표현식과 일치하는 주제 이름 ("/topics/[a-zA-Z0-9-_.~%]+")을 선택할 수 있습니다.


    메시징

    장치 그룹 메시징, 애플리케이션 서버 그룹에 속하는 장치에서 실행되는 응용 프로그램의 여러 인스턴스에 하나의 메시지를 보낼 수 있습니다

    장치 그룹. 일반적으로 "그룹"은 단일 사용자에 속한 여러 장치 집합을 나타냅니다. 그룹의 모든 장치는 공통 알림 키를 공유합니다.이 키는 FCM이 그룹의 모든 장치에 메시지를 전달하는 데 사용하는 토큰입니다.

    기기 그룹 메시징을 사용하면 그룹의 모든 앱 인스턴스가 최신 메시징 상태를 반영 할 수 있습니다. 알림 키로 메시지를 다운 스트림 전송하는 것 외에도 장치가 업스트림 메시지를 장치 그룹에 보낼 수있게 할 수 있습니다. XMPP 또는 HTTP 연결 서버에서 장치 그룹 메시징을 사용할 수 있습니다. iOS 기기로 전송할 때 데이터 페이로드의 제한은 2KB이고 다른 플랫폼의 경우 4KB입니다.

    notification_key에 허용되는 최대 멤버 수는 20입니다.


    자세한 내용은, 당신은 Sending to Multiple Devices in FCM 문서를 확인할 수 있습니다.

    +0

    당신은 주제 스크립트의 PHP 및 Android 코드 만 사용할 수 있습니다. – Lenin

    +0

    @ Lenin 시나리오에 대해 자세히 설명해 주시겠습니까? 자신 만의 응용 프로그램 서버가 있습니까? –

    +0

    예, 자체 앱 서버가 있고 위의 코드를 사용하여 하나의 장치에 대한 푸시 알림을 보냈습니다. 이제 성공하고 현재 시나리오가 나타납니다. 많은 장치에 푸시 알림을 보낼 수있는 PHP 코드가 필요합니다. 나는 당신이 보낸 위의 문서를 읽고 나는 "토픽 메시징"에 대한 완전한 코드를 제공하십시오 code.Please 프레임 수 없습니다. 나쁜 영어로 죄송합니다. – Lenin

    관련 문제