Как отправить некоторые дополнительные данные при отправке push-уведомлений с помощью OneSignal?

Я разрабатываю приложение для Android, а также пишу написание C # Web Api для него. Теперь я могу отправлять push-уведомления, используя приведенный ниже код. Но мне нужно отправить объект json, который будет содержать URL-адрес для изображения, чтобы при нажатии пользователем уведомления, активность в приложении открывается и использование этого URL-адреса загружает изображение с помощью Picasso. Как я должен это делать?

private void SendPushNotifications(int userId) { string appId = "myAppId"; var request = WebRequest.Create("https://onesignal.com/api/v1/notifications") as HttpWebRequest; var user = db.Users.FirstOrDefault(x => x.Id == userId); if (user != null) { string message = "This job is posted by: \n" + user.Name + "\n" + user.Contact + "\n" +user.City; if (request != null) { request.KeepAlive = true; request.Method = "POST"; request.ContentType = "application/json"; request.Headers.Add("authorization", "Basic "+appId); byte[] byteArray = Encoding.UTF8.GetBytes("{" + "\"app_id\": \"app_id\"," + "\"contents\": {\"en\": \""+ message +"\"}," + "\"included_segments\": [\"All\"]}"); string responseContent = null; try { using (var writer = request.GetRequestStream()) { writer.Write(byteArray, 0, byteArray.Length); } using (var response = request.GetResponse() as HttpWebResponse) { using (var reader = new StreamReader(response.GetResponseStream())) { responseContent = reader.ReadToEnd(); } } } catch (WebException ex) { System.Diagnostics.Debug.WriteLine(ex.Message); System.Diagnostics.Debug.WriteLine(new StreamReader(ex.Response.GetResponseStream()).ReadToEnd()); } if (responseContent != null) System.Diagnostics.Debug.WriteLine(responseContent); } } } 

С этой строкой «сообщение» я также хочу отправить объект json.

Редактировать + Решение: OneSignal позволяет отправлять дополнительные данные с помощью тега «data» в закодированной строке, которую я отправляю, как показано ниже:

 byte[] byteArray = Encoding.UTF8.GetBytes("{" + "\"app_id\": \"app_id\"," + "\"data\": {\"foo\": \"bear\"}," + "\"contents\": {\"en\": \"" + message + "\"}," + "\"included_segments\": [\"All\"]}"); 

Таким образом, в Android он будет отображаться в JsonObject addData

 OneSignal.startInit(this) .setNotificationOpenedHandler(new OneSignal.NotificationOpenedHandler() { @Override public void notificationOpened(String message, JSONObject additionalData, boolean isActive) { Toast.makeText(MainActivity.this,message,Toast.LENGTH_SHORT).show(); } }) .init(); 

И вы можете легко использовать его. 🙂