OneSignal: отправить уведомление Pu sh только одному пользователю - PullRequest
0 голосов
/ 20 июня 2020

Я хочу, чтобы, когда пользователю понравилось сообщение другого пользователя, этот пользователь должен получить уведомление в 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, но это зависит от устройств, а не пользователей.

С уважением

...