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

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

QA

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

답변 2

본문

안녕하세요

 

푸시를 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으로
가는형태로 만드는데 카카오푸시에서 분산해주는 방식인것 같은데..그것도
한번 참고해보시는것도 다른대안이지 않을까 싶습니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 60,954
© SIRSOFT
현재 페이지 제일 처음으로