OneSignal - 发送定时通知

9

我想要使用API来发送OneSignal的定时消息,而不是使用他们的仪表板。我已经阅读了他们的文档,但是没有找到任何有关如何修改他们当前的API以便发送定时通知的信息。

function sendMessage(){
        $content = array(
            "en" => $message,

            );

    $fields = array(
        'app_id' => "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
        'included_segments' => array('All'),
  'data' => array("foo" => "bar"),
        '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 NGEwMGZmMjItY2NkNy0xMWUzLTk5ZDUtMDAwYzI5NDBlNjJj'));
    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");
1个回答

14
您可以在此文档页面上找到安排选项:https://documentation.onesignal.com/v3.0/reference#section-delivery 以下是可用的选项:
- send_after(延迟发送)。
示例: - "Thu Sep 24 2015 14:00:00 GMT-0700 (PDT)" - "September 24th 2015, 2:00:00 pm UTC-07:00" - "2015-09-24 14:00:00 GMT-0700" - "Sept 24 2015 14:00:00 GMT-0700" - "Thu Sep 24 2015 14:00:00 GMT-0700 (Pacific Daylight Time)" - delayed_option
可能的值包括: - "timezone"(在每个用户自己的时区以特定的时间交付)。 - "last-active"(在预测的每个用户最佳交付时间交付)。 - delivery_time_of_day。与 delayed_option=timezone 配合使用。
示例: - "9:00AM"
您可以将这些选项添加到代码的字段部分,如下所示:
$fields = array(
  'app_id' => "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  'included_segments' => array('All'),
  'data' => array("foo" => "bar"),
  'contents' => $content,
  'send_after' => "Sept 24 2017 14:00:00 GMT-0700"
);

1
谢谢你的帮助,我不知道我怎么错过了这些选项。 - Nouf
"send_after" 起到了绝佳的效果!!非常感谢。 - letsintegreat
这是哪种格式?如果我把日期作为变量使用呢? - krachleur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接