2016-11-21 5 views
0

Обзор на то, что я ищу, чтобы достичь:OneSignal отправки уведомления всем пользователям в сегменте

Сайт, который может войти в систему пользователей (с различными разрешениями, определенными в базе данных) и направляются уведомления через 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

Попытайтесь решить эту проблему, затем подходите к ней с конкретными проблемами с тем, что вы пытались. Вероятно, есть много решений, которые вы хотите, но никто не собирается просто писать код для вас. – Takarii

+0

Я не прошу никому написать код для меня, поэтому спасибо за консультацию в нижней части моего вопроса. Я был в процессе добавления кода, который я пробовал, пока видел этот комментарий. Я действительно ищу совет от кого-то, кто использовал OneSignal для веб-push-уведомлений в идеале. – AntBirch

ответ

0

Я использовал OneSignal для Android. Однако, если вы отправляете уведомление в конкретный сегмент, вызывая вызов API в конечную точку API OneSignal, попробуйте отправить пробное уведомление/тестовое уведомление с необходимыми данными уведомления на сервер OneSignal.

После этого, создайте тот же HTTP-запрос API через свой код. Например, используйте RESTful Debugger в Firefox/Chrome и проверьте, действительно ли вы отправляете правильный запрос на OneSignal для пересылки вашего уведомления.

Кроме того, проверьте конфигурацию OneSignal Console, если сегмент настроен правильно. Правильно настроенный сегмент, вероятно, будет иметь теги с соответствующими значениями, связанными с ними, чтобы выбрать целевую группу пользователей, которые получают уведомление, отправленное этому сегменту.

В нижней строке проверьте правильность всей настройки сегментации, следуя всем инструкциям в документации OneSignal, если никакое другое решение не работает.

Надеется, что это помогает :)

например, использовать услугу, как: Mock Server издеваться OneSignal API с нужными данными.

+0

Я также использовал OneSignal для iOS и Android, но мне не повезло с push-уведомлениями в Интернете. Это странно, потому что мой запрос Ajax возвращает, что он успешный, но никаких сообщений не отправляется из OneSignal, как только это произойдет. Отправка уведомления в настоящее время инициируется нажатием кнопки в HTML-файле. Я использую код примера (с небольшими изменениями), найденный по адресу: https://documentation.onesignal.com/reference (отправлено в определенный сегмент) – AntBirch

+1

Я боюсь, что единственная проблема, о которой я могу думать, - это не правильно устанавливая теги при отправке запроса на сервер. Кроме того, совет, весь код, который вы используете для аутентификации вашего запроса push на сервер, не должен находиться на стороне клиента, так как он содержит ключ аутентификации сервера, который OneSignal использует для сопоставления запроса конкретному проекту OneSignal. Поэтому попробуйте сделать это, отправив запрос на ваш сервер с нужными данными, которые будут перенаправлены всем пользователям в сегменте, и отправив Push-запрос OneSignal с вашего сервера приложений. –

+1

Тем не менее, я все равно попытаюсь решить вашу проблему, как только я получу некоторое время, и, возможно, вернусь к вам с решением. –

Смежные вопросы