2017-04-04 3 views
0

私はバッチのためにこのコードを持っている:異なるフィールドを持つサブスクリプションIDを持つバッチ通知を送信することはできますか?

$ch = curl_init(); 
$google_gcm_url = 'https://gcm-http.googleapis.com/gcm/send'; 
$title = 'Title'; 
$msg = 'Message'; 

// just sample unrealistic ids 
$fields['to'] = array ( 
    'mobileSubscriptionId1', 
    'mobileSubscriptionId2', 
    'mobileSubscriptionId3' 
); 

$fields['notification'] = array (
    'title' => $title, 
    'body' => $msg, 
    // 'url' => 'some_url1', 
    'url' => array (
     'some_url1', 
     'some_url2', 
     'some_url3' 
    ) 
); 

$fields['priority'] = 'high'; 
$fields['content_available'] = true; 

curl_setopt($ch, CURLOPT_URL, $google_gcm_url); 
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); 

それは彼らがそれをクリックしたときにそれが最初のURLフィールド「some_url1」に行きます「mobileSubscriptionId1」subcriptionを設定することは可能ですか? "mobileSubscriptionId2"を "some_url2"に、 "mobileSubscriptionId3"を "some_url3"に変更します。 私のコードを試しましたが、動作しません。 本当に遅いので、カールをループしたくありません。 現実的に私は何千ものIDを持っています。

+1

これはモバイルアプリに送信されているため、ユーザーはリンクをクリックして、指定されたURLに戻ると思われますか?たぶんあなたは1つのURLを使用し、一意の識別子(多分?GCM registrationID?)を提供し、ユーザーを検索し、それに応じて要求を処理するモバイルアプリケーションを取得する必要があります。 GCMはバッチをサポートしており、1000が推奨されるようです。 – markdwhite

+0

[C#固有のカスタムデータFCMを持つデバイスグループに通知を送信する](http://stackoverflow.com/questions/41755955/c-sharp-send-notification-to-device-group-with-unique-custom- data-fcm) –

+0

@markdwhiteモバイル用のonclickハンドラがある場合はこれを行うかもしれませんが、悪いことは、モバイルアプリを作成したサードパーティのことです(これは私のデスクトップ通知と同様のアプローチです。アイデア。ありがとう:) –

答えて

0

これは現在、GCM(およびFCM)では不可能です。独自のユニークペイロードをユーザーごとに送信する場合は、それぞれに個別のリクエストを送信する必要があります。 (可能な重複した投稿の私の答えを見てください)。

@ markdwhiteのコメントは実現可能なようです。

+0

ありがとう!を使用して気づかれていないバックグラウンドで実行するような代替案を実行する可能性があります。 –

関連する問題