Я пытаюсь отправить push-уведомление пользователям с конкретными тегами, используя API для службы OneSignal, найденной здесь: https://www.onesignal.com/
Я не могу отформатировать массив правильно. Вот что я имею или хочу, но это не работает:
"tags" => array[{"key": "NotifyLive", "relation": "=", "value": "true"}],
Поэтому я хочу настроить таргетинг на пользователей, у которых для тега «NotifyLive» установлено значение «true».
Я считаю, что это можно сделать, потому что это показывает документация здесь. Прокрутите вниз до теги: массив объектов Примеры. Я просто не могу понять, как закодировать эту строку.
Вот поля, которые я отправляю с моим уведомлением:
$fields = array(
"app_id" => "example",
"android_sound" => "$num",
"big_picture" => "http://website.com/mypic.jpg",
"tags" => array[{"key": "NotifyLive", "relation": "=", "value": "true"}],// Doesn't work!
"data" => array("autoplay" => "true"),
"contents" => $content,
"headings" => $heading
);
ОШИБКИ:
JSON получил: {«allresponses»: «{\» errors \ «: [\» Теги должны быть массивом. Например, [{\\ «ключ \\»: \\ «пол \\», \\ «отношение \\»: \\ «= \\», \\ «значение \\»: \\ «мужчина \» \ «}] \»]} «}
Команда имеет УДИВИТЕЛЬНУЮ поддержку, но мне нужен ответ вне рабочего времени, так как я сейчас пишу код. Спасибо за любые идеи.
Разобрался с ответом. Массив должен был быть записан в следующем формате:
// This Array format worked
$daTags = array(
array("key" => "NotifySound", "relation" => "=", "value" => "true"),
);
$fields = array(
"app_id" => "exampleID",
"android_sound" => "$num",
"big_picture" => "http://wesite.com/mypic.jpg",
"tags" => $daTags,
"data" => array("autoplay" => "true"),
"contents" => $content,
"headings" => $heading
);
Как tags
поле устарело, вы должны использовать filters
поле для таргетинга пользователей по тегам
$filters = array(
array("field" => "tag", "key" => "NotifySound", "relation" => "=", "value" => "true"),
);
$fields = array(
"app_id" => "exampleID",
"android_sound" => "sound",
"big_picture" => "http://wesite.com/mypic.jpg",
"filters" => $filters,
"data" => array("autoplay" => "true"),
"contents" => $content,
"headings" => $heading
);