FCM푸시 발송 할때 나누어 발송 방법 문의 드립니다.

FCM푸시 발송 할때 나누어 발송 방법 문의 드립니다.

QA

FCM푸시 발송 할때 나누어 발송 방법 문의 드립니다.

본문

안녕하세요

 

푸시를 FCM 으로 구성 했는되요!!!

어제 발송이 갑자기 안되더라구요!!!

 

확인해보니 2000개가 넘어가니 불락이 걸린듯합니다.

 

이걸 900개씩 인터발형태로 보낼 방법이 있나요?

 

조언 구합니다.

 

 

감사합니다.

 

 

이 질문에 댓글 쓰기 :

답변 2

저 같은 경우는...알람 허용 할때 미리  allmember라는 topic을 구독하는 형태로 처리

해놓은담에 전체 발송되는 fcm은 일반FCM말고 topic fcm발송으로 보내면

fcm에서 알아서 분산해서 처리해주는걸 이용했습니다....

아래 방법으로 진행 했습니다. 검토 부탁드립니다.


// 회원에서 토큰 가져오기
$query1 = " 회원 토큰 쿼리 ";
$result1 = mysqli_query($db_conn, $query1);    
if(mysqli_num_rows($result1) > 0 ){
  while ($row1 = mysqli_fetch_assoc($result1)) {
      $tokens[] = $row1['token'];
  }
}
$messge = "푸시메세지"
$regIdChunk=array_chunk($tokens,1000);  // 1000를 나눠서 전송
foreach($regIdChunk as $RegId){
     $message_status = send_notification($RegId, $messge);
}
echo $message_status;
// push send
function send_notification ($tokens, $messge)
{
  $url = 'fcm send url';
  $apikey = ' api key ';
  $headers = array('Authorization:key='.$apikey,'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);
  $fields = array('registration_ids' => $tokens, 'notification' => $messge );
  curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
  // 푸시 결과 체크
  $result = curl_exec($ch);
  if ($result === FALSE) 
  {
    $this->output->set_status_header(500); // FCM 푸시메시지 전송에 실패했습니다.
  }
  curl_close($ch);
  echo $result;
}

이거는 1:1이나 여러기기보내기(최대20개) 보낼때 쓰는 방법이라서
이걸 sleep형태로 시간차를 두고 보내본적이 없어 뭐라 도움을 못드릴거
같습니다.

https://firebase.google.com/docs/cloud-messaging/android/topic-messaging?hl=ko
이걸 참고하시거나 그때 당시 카카오푸시API라는것도 괜찮을것 같긴했는데 적용해보진
못했습니다. 서버 -> 구글FCM으로 보내는걸 서버-> 카카오푸시API -> 구글FCM으로
가는형태로 만드는데 카카오푸시에서 분산해주는 방식인것 같은데..그것도
한번 참고해보시는것도 다른대안이지 않을까 싶습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 82
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT