Я подаю заявку на отправку уведомлений с помощью OneSignal и должен выполнить запрос POST в формате JSON.
Чтобы отправить уведомление пользователю, я должен использовать аргумент include_player_ids
, который должен бытьмассив, потому что можно отправлять нескольким пользователям одно и то же уведомление (в моем случае я отправляю уведомление только одному пользователю).Я использую JSONArray для создания этого массива, но при добавлении его в JSONObject есть дополнительные кавычки для поля include_player_ids
.
Что у меня есть:
{
"headings": {"en":"my_title"},
"contents": {"en":"my_text"},
"include_player_ids": "[\"my-player-id\"]",
"app_id":"my-app-id"
}
Как вы можете видеть, вокруг массива есть некоторая кавычка [].
Я думаю, это то, что делает ошибку ответа от OneSignal: errors":["include_player_ids must be an array"]
Что я хочу:
...
"include_player_ids": ["my-player-id"]
...
Это странно, потому что добавление JSONObject в JSONObject не делает этого, даже если это очень похоже на поля заголовков / содержимого
Мой код:
import org.json.JSONException;
import org.json.JSONObject;
import org.json.alt.JSONArray;
JSONObject headings = new JSONObject();
JSONObject contents = new JSONObject();
JSONArray player_id = new JSONArray();
JSONObject notification = new JSONObject();
try {
notification.put("app_id", appId);
notification.put("include_player_ids", player_id);
player_id.put(idUser);
headings.put("en", "my_title");
contents.put("en", "my_text");
notification.put("headings", headings);
notification.put("contents", contents);
} catch (JSONException e) {
System.out.println("JSONException :" + e.getMessage());
}
idUser
является строкой
Заранее спасибо за любую помощь,