2016-05-15 6 views
2

Ich versuche, eine API-Benachrichtigung von OneSignal an API REST senden, wenn ich für einen eindeutigen Benutzer senden, ist es Arbeit richtig, aber wenn zu mehr als einem Benutzer in Json, wird die Benachrichtigung gesendet für den einzigartigen Benutzer noch.Senden API-Benachrichtigung OneSignal für mehrere Benutzer

My JSON (listOnesignal):[{"key":"user","relation":"=","value":"YAlBcuwiOJ"},{"key":"user","relation":"=","value":"MSoVMRxzbh"}]  

var jsonBody = { 
        app_id: "appid", 
        android_background_data: true, 
        tags: listOneSignal, 
        data: {anything} 
    }; 

Antwort

3

Sie benötigen einen OR Operator zwischen jedem Eintrag hinzufügen, wie AND standardmäßig verwendet wird.

[{"key":"user","relation":"=","value":"YAlBcuwiOJ"}, 
{"operator": "OR"}, 
{"key":"user","relation":"=","value":"MSoVMRxzbh"}] 

anzumerken, dass es eine Grenze von 200 Einträgen (einschließlich OR ‚s) auf das Feld tags pro Anruf REST API. Sie können stattdessen include_player_ids verwenden, wenn Sie mehrere Geräte gleichzeitig anvisieren müssen, da Sie bis zu 2000 senden können.

Weitere Informationen finden Sie auf der OneSignal create notification REST API Dokumentationsseite.

+0

Aber ich brauche für die zwei oder mehr senden Benutzer in der gleichen Zeit, das wird funktionieren? –

+1

Ja, im obigen Beispiel erhalten beide Benutzer "YAlBcuwOJ" und "MSoVMRxzbh" dieselbe Benachrichtigung. – jkasten

+0

Danke Mann :) –

0

Falls jemand das OneSignal CSharp SDK verwenden, ist dies, wie Sie das gleiche tun kann (obwohl dieses Beispiel-Tags anstelle von Spieler-IDs verwendet):

IList<INotificationFilter> filters = new List<INotificationFilter>(); 

foreach (var tag in tagList) 
{ 
    var filter = new NotificationFilterField 
    { 
     Field = NotificationFilterFieldTypeEnum.Tag, 
     Key = "tag_id", 
     Value = tag, 
     Relation = "=" 
    }; 

    if (filters.Count > 0) 
     filters.Add(new NotificationFilterOperator { Operator = "OR" }); 

    filters.Add(filter); 
} 

var client = new OneSignalClient("..."); 

var options = new NotificationCreateOptions 
{ 
    AppId = new Guid("..."), 
    Filters = filters 
}; 

options.Contents.Add(...); 
client.Notifications.Create(options);