使用OneSignal android发送PushNotifications时出错

时间:2018-01-15 20:41:32

标签: java android push-notification onesignal

我正在使用Messaging Android App。应通过推送通知通知用户。

当时我有这段代码:

public void notifyUser(String user_id, String message) {
        try {
            OneSignal.postNotification(new JSONObject("{'contents': {'en':['" + message + "']}, " +
                            "'include_player_ids': ['" + user_id + "'], " +
                            "'headings': {'en': 'Tag sub Title HI {{user_name}}'}, " +
                            "'data': {'openURL': 'https://imgur.com'}," +
                            "'buttons':[{'id': 'id1', 'text': 'Go to GreenActivity'}, {'id':'id2', 'text': 'Go to MainActivity'}]}"),
                    new OneSignal.PostNotificationResponseHandler() {
                        @Override
                        public void onSuccess(JSONObject response) {
                            Log.d("LOL", "postNotification Success: " + response.toString());
                        }

                        @Override
                        public void onFailure(JSONObject response) {
                            Log.d("LOL", "postNotification Failure: " + response.toString());
                        }
                    });
        } catch (JSONException e) {
            e.printStackTrace();
        }
}

但是我在日志中遇到错误:

D/LOL: postNotification Failure: {"errors":["Notification contents for each language must be a string"]}  

我搜索了互联网,但没有找到解决我问题的方法。 我希望你能帮帮我... 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我相信您所看到的错误是因为当它应该只是一个字符串时,您会在数组中发送消息。

"{'contents': {'en':['" + message + "']}应为"{'contents': {'en':'" + message + "'}(删除括号)。