2016-11-14 4 views
1

gcmを送信する機能コードがあります。トークンGCM IDが送信されないユーザーが1000人を超えるまで機能します。1000人以上のユーザーにGcmを送信するPHP関数

これは私の機能コードです。

private static function send_message($title,$url){ 
    global $wpdb; 
    $token = $wpdb->get_results('SELECT * FROM '.$wpdb->prefix.'devices', ARRAY_N); 
    foreach ($token as $key) { 

     $registrationIds[] = $key[1]; 
    }    
    $msg = array(
    'registrationIds' => $group, 
     'message' => $title, 
     'url' => $url, 
     'title' => 'This is a title. title', 
    ); 
    $fields = array(
     'registration_ids' => $registrationIds, 
     'data' => $msg 
    ); 
    $headers = array(
     'Authorization: key=' . FA_API, 
     'Content-Type: application/json' 
    ); 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send'); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); 
    $result = curl_exec($ch);     
    curl_close($ch); 
    return $result; 
} 

1000人以上のユーザーにプッシュ通知を送信する方法を教えてください。

+0

apiにレート制限があります –

+0

できるコール数に制限があります。このコードが動作する場合、プログラミング上の問題ではありません。 – tadman

+0

はい1000ユーザーのトークンごとに送信する必要があります。ループを使用する必要があります –

答えて

1

このパラメータには、マルチキャストメッセージを受信するデバイス(登録トークンまたは ID)のリストを指定します。少なくとも1つの登録トークンが で1000個以上含まれている必要があります。

https://developers.google.com/cloud-messaging/http-server-ref#downstream-http-messages-json 各メッセージは1000メッセージです。 $registrationIdsアレイをより小さな配列に分割する必要があります。次にそれらをループ内に送り出します。

関連する問題