2017-08-14 69 views
2

我想为OneSignal发送预定的消息,但不是使用他们的仪表板我想使用API​​来做到这一点,我没有阅读他们的文档,但我找不到任何东西来修改它们的当前API这样我就可以发送预定通知OneSignal - 发送预定的通知

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"); 

回答

2

你可以找到这个文档页面上的计划选项:https://documentation.onesignal.com/v3.0/reference#section-delivery

下面是可用的选项:

send_after(发送在以后的时间)

实例:

“星期四2015年9月24日14:00:00 GMT-0700(PDT)”

“2015年9月24日,2:下午12点UTC-07:00"

“2015年9月24日14:00:00 GMT-0700”

“2015年9月24日14:00:00 GMT-0700”

“星期四2015年9月24日14:00:00 GMT-0700(太平洋夏令时)”

delayed_option

可能的值有:

“时区”(交付在特定时间的天的每个用户拥有 时区)

“一个活动”(在一天中的每个用户所预测的最佳时间交付)。

delivery_time_of_day与delayed_option = timezone一起使用。

例子:

“9:00 AM”

您可以添加这些选项的代码领域的部分,像这样:

$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" 
); 
+0

谢谢您的帮助,我不不知道我错过了选择 – Nouf