Как исправить push-уведомление OneSignal, возвращающее «Все включенные игроки не подписаны»?

#php #onesignal

#php #onesignal

Вопрос:

Я пытаюсь отправлять уведомления на устройство, на котором установлено мое приложение, с помощью php , отправка уведомлений всем пользователям прошла успешно при использовании 'included_segments' => array('All') , но когда я пытаюсь использовать фильтры, я получаю All included players are not subscribed ошибку ответа, это скрипт push-уведомлений, который я использую:

push.php

 <?PHP
function sendMessage(){
    $content = array(
        "en" => 'Testing Message'
        );

    $fields = array(
        'app_id' => <omitted>,
        'filters' => array(array("field" => "tag", "key" => "etab", "relation" => "=", "value" => "1")),
        'data' => array("foo" => "bar"),
        'large_icon' =>"ic_launcher_round.png",
        '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 <omitted>'));
    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("nnJSON received:n");
print($return);
print("n");
?>
  

Вывод

 JSON sent: {"app_id":<omitted>,"filters":[{"field":"tag","key":"etab","relation":"=","value":"1"}],"data":{"foo":"bar"},"large_icon":"ic_launcher_round.png","contents":{"en":"Testing Message"}} JSON received: {"allresponses":"{"id":"","recipients":0,"errors":["All included players are not subscribed"]}"}
  

Я проверил доступные теги в своем приложении для Android, и тег успешно реализован и работает нормально.

Ответ №1:

"All included players are not subscribed" Сообщение может означать любое из следующего.

  1. Убедитесь, что вы установили правильное app_id .
  2. У вас нет подписанных пользователей.
  3. Вы не настроили платформу для своих устройств на странице настроек приложения на панели инструментов OneSignal.
  4. В фильтре нет пользователей.

Комментарии:

1. я использую SDK java, как я проверяю, нет ли проигрывателя? для планирования уведомления о следующем подключении пользователя