Я хочу, чтобы, когда пользователю понравилось сообщение другого пользователя, этот пользователь должен получить уведомление в Android. PHP код:
include("settingsDB.php");
$user_id=$_POST["userid"];
$post_id=$_POST["postid"];
if(...user likes a post...){
$add=mysqli_query($conn,"insert into liked_posts(post_id,user_id,time) values('$post_id',$user_id,'$time')");
sendMessage($user_id);
$result->success=true;
echo(json_encode($result));
}
function sendMessage($useridparam) {
$content = array(
"en" => 'User with id: '.$useridparam.' liked your post.'
);
$fields = array(
'app_id' => "xxx",
'included_segments' => array(
'All'
),
'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 XXX'
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
...other properties...
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
Когда я использую этот код, он отправляет уведомления всем пользователям из-за 'included_segments' => array('All')
. Итак, как мне поместить сюда только один user_id из базы данных? В документах OneSignal это можно сделать с помощью include_player_ids
, но это зависит от устройств, а не пользователей.
С уважением