【问题标题】:Adding OneSignal segments to filters array将 OneSignal 段添加到过滤器数组
【发布时间】:2019-09-30 18:31:18
【问题描述】:

我正在使用以下 PHP 脚本向订阅的设备发送 OneSignal 推送通知。

<?PHP
function sendMessage(){
    $content = array(
        "en" => 'Testing Message desde el backend small icon '
        );

    $fields = array(
        'app_id' => "xxxx",
        'filters' => array(array("field" => "tag", "key" => "correo", "relation" => "=", "value" => "xxx")),
        'data' => array("foo" => "bar"),
        'small_icon' =>"ic_push",


        'contents' => $content
    );

    $fields = json_encode($fields);
print("\nJSON sent:\n");
print($fields);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://onesignal.com/api/v1/notifications");
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8',
                                               'Authorization: Basic xxxxx'));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, FALSE);
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);    

    $response = curl_exec($ch);
    curl_close($ch);

    return $response;
}

$response = sendMessage();
$return["allresponses"] = $response;
$return = json_encode( $return);
print("\n\nJSON received:\n");
print($return);
print("\n");
?>

此脚本运行良好,并且通知已发送。

现在我需要添加更多过滤器,例如,我需要将过滤器添加到我在 OneSignal 仪表板中创建的另外两个分段。

细分为“滑板”和“管理员”。 如何将这两个段添加到过滤器数组中?

【问题讨论】:

标签: php onesignal


【解决方案1】:

您需要像传递标签一样在字段中传递段名称数组。

  $content = array(
   "en" => 'Notification Message Here..'
   );

    $heading = array(
        "en" => 'Heading goes here..'
     );

     $fields = array( 
        'app_id' => 'XXXXXXXXXXXXXXXXXXXXX', 
        'contents' => $content,
          'headings' => $heading,
          'included_segments' => array('SegmentName1','SegmentName2'),
          'tags' = array(array("key" => "state", "relation" => "=", "value" => 'Delhi'))
        ); 

    $fields = json_encode($fields);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://onesignal.com/api/v1/notifications");
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8',
                'Authorization: Basic XXXXXXXXXXXXXXXXXXX'));

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, FALSE);
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

    $response = curl_exec($ch);
    curl_close($ch);

    return $response;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 2012-01-22
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多