OneSignal向具有电子邮件ID的用户发送通知

时间:2017-02-20 06:07:58

标签: onesignal

我有一个集成到我的Web应用程序的OneSignal通知它工作正常,但问题是我只需要向特定用户发送通知。我会选择一封电子邮件并发送通知。对于OneSignal提供的细分,当我创建细分并提供电子邮件ID时,它会在该细分中显示0个用户。

我的问题是,我在细分中输入的电子邮件ID如何与0个用户进行比较并返回给我?

1 个答案:

答案 0 :(得分:1)

请改用标签。对于要发送消息的人,请设置标记,例如:{email:jimmy@jimmy.com}。

然后在发送代码的通知中,根据代码发送给此人。 e.g。

    $content = array(
        "en" => "hello jimmy"
        );

    $fields = array(
        'app_id' => <your_ID_here> ,
        'filters' => array(array("field" => "tag", "key" => "email", "relation" => "=", "value" => "jimmy@jimmy.com")),
        'data' => array("foo" => "bar"),
        'contents' => $content
    );

    $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 '.$_SESSION['global_rest_id']));
    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);