При сохранении пользователей в OneSignal, почему подписанное поле показывает No Push Token? - PullRequest
0 голосов
/ 29 мая 2019

Я создаю Rest API с помощью Spring Boot и настроил его для работы с OneSignal. Мне удалось получить и сохранить Players_id в моей базе данных.

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

И код ответа:

strJsonBody:
{"app_id": "b27c8471-e134-4991-b722- 
e4498273c5f4","include_external_user_ids": ["0c25334c-302e-4022-b494- 
a11ea6f43318", "d3349289-b406-480e-8093-d410e7aacc2d"],"data": {"foo": 
"bar"},"contents": {"en": "com.chatapp.model.Message@2d379c31"}}
httpResponse: 200
jsonResponse:
{"id":"","recipients":0,"errors":["All included players are not 
subscribed"]}

Так что я не знаю, как хранить этот токен или что мне делать?

Это код для регистрации пользовательских устройств:

public String registerDevice() {
       try {
           String jsonResponse;
           URL url = new URL(playersUrl);
           HttpURLConnection con = (HttpURLConnection) url.openConnection();
           con.setUseCaches(false);
           con.setDoOutput(true);
           con.setDoInput(true);

           con.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
           con.setRequestProperty("Authorization",
                   "Basic " + appKey);//REST API
           con.setRequestMethod("POST");

           String strJsonBody = "{"
                   + "\"app_id\": \"" + appId + "\","
                   + "\"device_type\": \"" + 5 + "\""
                   + "}";

           byte[] sendBytes = strJsonBody.getBytes("UTF-8");
           con.setFixedLengthStreamingMode(sendBytes.length);

           OutputStream outputStream = con.getOutputStream();
           outputStream.write(sendBytes);

           int httpResponse = con.getResponseCode();
           System.out.println("httpResponse: " + httpResponse);

           jsonResponse = mountResponseRequest(con, httpResponse);
           System.out.println("jsonResponse:\n" + jsonResponse);

           JSONObject jsonObject = new JSONObject(jsonResponse);
           String id = jsonObject.getString("id");

           return id;
       } catch (Throwable t) {
           t.printStackTrace();
           return null;
       }
   }
...