我希望实现的目标概述:
用户可以登录的网站(具有数据库定义的不同权限),并在订单状态发生变化时通过OneSignal发送通知。
目前我已完成登录系统,并且用户被放置在OneSignal上的正确段(例如供应商)。我希望做的是触发所有供应商出现的通知'订单状态更新时。
关于如何解决这个问题的任何想法?我已经多次查看了所有文档,所以请不要发表任何评论。
感谢您的任何建议。
<?php
function sendMessage(){
$content = array(
"en" => 'Test Message'
);
$fields = array(
'app_id' => "1a95c98a-9349-4876-b9ce-981893b7bf42",
'included_segments' => array('Suppliers'),
'data' => array("userType" => "suppliers"),
'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");
?>
答案 0 :(得分:0)
我已经使用OneSignal for Android。 但是,如果您通过对OneSignal的API端点进行API调用向特定细分受众群发送通知,则应尝试向OneSignal的服务器发送包含所需通知数据的试用通知/测试通知。
之后,通过代码构建与API相同的HTTP请求。 例如,在Firefox / Chrome上使用RESTful Debugger并测试您是否确实向OneSignal发送了正确的请求以转发您的通知。
此外,如果已正确设置细分,请检查OneSignal控制台。 正确设置的段可能会有一些带有相应值的标记,以选择接收发送到该段的通知的目标用户组。
最重要的是,如果没有其他解决方案可行,请再次按照OneSignal文档中的所有步骤检查整个细分设置是否正确。
希望这会有所帮助:)
例如,使用像Mock Server这样的服务来模拟具有所需数据的OneSignal API。