2017-08-17 44 views
0

我想知道是否可以通过使用标签而不是通过included_segments向OneSignal中的特定用户发送通知我希望将通知 发送到特定标签,而无需创建分段并过滤用户的基础在他们OneSignal - 发送通知基于标签

$fields = array(
     'app_id' => "XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX", 
     'included_segments' => array($segments), 
     'data' => array("foo" => "bar"), 
     'contents' => $content 
    ); 

回答

1

在以下示例中,如果水平> 10或amount_spent> 0是该过滤器条件,其中水平和amount_spent是各自的标记的键。

try { 
     String jsonResponse; 

     URL url = new URL("https://onesignal.com/api/v1/notifications"); 
     HttpURLConnection con = (HttpURLConnection)url.openConnection(); 
     con.setUseCaches(false); 
     con.setDoOutput(true); 
     con.setDoInput(true); 

     con.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); 
     con.setRequestProperty("Authorization", "Basic NGEwMGZmMjItY2NkNy0xMWUzLTk5ZDUtMDAwYzI5NDBlNjJj"); 
     con.setRequestMethod("POST"); 

     String strJsonBody = "{" 
         + "\"app_id\": \"5eb5a37e-b458-11e3-ac11-000c2940e62c\"," 
         + "\"filters\": [{\"field\": \"tag\", \"key\": \"level\", \"relation\": \">\", \"value\": \"10\"},{\"operator\": \"OR\"},{\"field\": \"amount_spent\", \"relation\": \">\",\"value\": \"0\"}]," 
         + "\"data\": {\"foo\": \"bar\"}," 
         + "\"contents\": {\"en\": \"English Message\"}" 
         + "}"; 


     System.out.println("strJsonBody:\n" + strJsonBody); 

     byte[] sendBytes = strJsonBody.getBytes("UTF-8"); 
     con.setFixedLengthStreamingMode(sendBytes.length); 

     OutputStream outputStream = con.getOutputStream(); 
     outputStream.write(sendBytes); 

     int httpResponse = con.getResponseCode(); 
     System.out.println("httpResponse: " + httpResponse); 

     if (httpResponse >= HttpURLConnection.HTTP_OK && httpResponse < HttpURLConnection.HTTP_BAD_REQUEST) { 
      Scanner scanner = new Scanner(con.getInputStream(), "UTF-8"); 
      jsonResponse = scanner.useDelimiter("\\A").hasNext() ? scanner.next() : ""; 
      scanner.close(); 
     }else { 
      Scanner scanner = new Scanner(con.getErrorStream(), "UTF-8"); 
      jsonResponse = scanner.useDelimiter("\\A").hasNext() ? scanner.next() : ""; 
      scanner.close(); 
    } 
    System.out.println("jsonResponse:\n" + jsonResponse); 

} catch(Throwable t) { 
    t.printStackTrace(); 
} 

来自:Source。 搜索发送基于过滤器/标签 - 从源头上创建通知提到

+0

感谢你,正是我想要的 – Nouf