Java Can';在Openshift上发布网站后,无法在Android应用程序上获取FCM有效负载消息

Java Can';在Openshift上发布网站后,无法在Android应用程序上获取FCM有效负载消息,java,android,servlets,openshift,firebase-cloud-messaging,Java,Android,Servlets,Openshift,Firebase Cloud Messaging,我有一个JSPServlet Web应用程序,当客户使用Web应用程序输入一个条目时,该应用程序将向Android应用程序生成FCM有效负载消息。 当我在本地环境中测试它时,它运行良好,但现在我在OPENSHIFT上发布了该网站,并尝试使用该网站输入一个条目。 现在我无法在我的Android应用程序上获取FCM有效负载消息。有什么问题吗?我的android应用程序还没有在Google play store上发布。 我使用了所有必需的代码,即 公共最终静态字符串AUTH\u KEY\u FCM=“

我有一个JSPServlet Web应用程序,当客户使用Web应用程序输入一个条目时,该应用程序将向Android应用程序生成FCM有效负载消息。 当我在本地环境中测试它时,它运行良好,但现在我在OPENSHIFT上发布了该网站,并尝试使用该网站输入一个条目。 现在我无法在我的Android应用程序上获取FCM有效负载消息。有什么问题吗?我的android应用程序还没有在Google play store上发布。 我使用了所有必需的代码,即

公共最终静态字符串AUTH\u KEY\u FCM=“XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”; 公共最终静态字符串API_URL_FCM=“”

它在任何机器上都可以正常工作,但在OPENSHIFT上发布网站后,它不会向Android应用程序发送任何消息

// This class is created to send data payload to the FCM to Android app....
public class SendDataPayload {
// Method to send Notifications from server to client end.

public final static String AUTH_KEY_FCM = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
public final static String API_URL_FCM = "https://fcm.googleapis.com/fcm/send";

// userDeviceIdKey is the device id you will query from your database
public void pushFCMNotification(String userDeviceIdKey, int y_Id, String f_name, String l_name, String m_number,
        String puja_name, String puja_date, String puja_time, String p_address, String p_landmark, String p_taluka,
        String p_district, String p_pincode) throws Exception {

    String authKey = AUTH_KEY_FCM; // Your FCM AUTH key
    String FMCurl = API_URL_FCM;

URL url = new URL(FMCurl);
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();

    conn.setUseCaches(false);
    conn.setDoInput(true);
    conn.setDoOutput(true);

    conn.setRequestMethod("POST");
    conn.setRequestProperty("Authorization", "key=" + authKey);
    conn.setRequestProperty("Content-Type", "application/json");

    JSONObject json = new JSONObject();
    json.put("to", userDeviceIdKey.trim()); // device token...

    // JSONObject info = new JSONObject();
    // info.put("title", "xyz"); // Notification title
    // info.put("body", "my message body is here!!!");
    // // Notification body
    String timeStamp = new SimpleDateFormat("dd/MM/yyyy  hh:mm a").format(Calendar.getInstance().getTime());
    String date = timeStamp;

    JSONObject data = new JSONObject();

    String first_name_ = URLEncoder.encode(f_name, "UTF-8");
    String last_name_ = URLEncoder.encode(l_name, "UTF-8");
    String santrika_sandesh = URLEncoder.encode("msg-MY", "UTF-8");
    String M_number = URLEncoder.encode(m_number, "UTF-8");
    String Puja_name = URLEncoder.encode(puja_name, "UTF-8");
    String Puja_date = URLEncoder.encode(puja_date, "UTF-8");
    String Puja_time = URLEncoder.encode(puja_time, "UTF-8");
    String P_address = URLEncoder.encode(p_address, "UTF-8");
    String P_landmark = URLEncoder.encode(p_landmark, "UTF-8");
    String P_taluka = URLEncoder.encode(p_taluka, "UTF-8");
    String P_district = URLEncoder.encode(p_district, "UTF-8");

    data.put("key1", santrika_sandesh); // DataPayload
    data.put("key2", date); // DataPayload
    data.put("y_Id", y_Id);
    data.put("f_name", first_name_); // Yajman first name
    data.put("l_name", last_name_);
    data.put("m_number", M_number);
    data.put("puja_name", Puja_name);
    data.put("puja_date", Puja_date);
    data.put("puja_time", Puja_time);
    data.put("puja_add", P_address);
    data.put("puja_landmark", P_landmark);
    data.put("puja_tal", P_taluka);
    data.put("puja_dist", P_district);
    data.put("puja_pincode", p_pincode);

    // send notification and payload data to FCM....
    // json.put("notification", info);
    json.put("data", data);

    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
    wr.write(json.toString());
    wr.flush();
    conn.getInputStream();
}
}

请参见

FCM将成功或错误地发回http响应

FCM响应示例{“multicast_id”:*************,“success”:1,“failure”:1,“canoni”‌校准ID“:0,“结果”‌​:[{“error”:“NotRegis‌​“},{”消息\u id‌​":"0:*******“}]}

在fcmServerResponse下面的代码中。toString()是来自FCM的响应。请在网页中打印它,以便查看错误或成功消息

StringBuilder fcmServerResponse = new StringBuilder();

    BufferedReader in = new BufferedReader(
                        new InputStreamReader(conn.getInputStream()));

                String inputLine;


                while ((inputLine = in.readLine()) != null) {
                    fcmServerResponse.append(inputLine);
                }

     fcmServerResponse.toString()//This is response from FCM

FCM将成功或错误地发回http响应

FCM响应示例{“multicast_id”:*************,“success”:1,“failure”:1,“canoni”‌校准ID“:0,“结果”‌​:[{“error”:“NotRegis‌​“},{”消息\u id‌​":"0:*******“}]}

在fcmServerResponse下面的代码中。toString()是来自FCM的响应。请在网页中打印它,以便查看错误或成功消息

StringBuilder fcmServerResponse = new StringBuilder();

    BufferedReader in = new BufferedReader(
                        new InputStreamReader(conn.getInputStream()));

                String inputLine;


                while ((inputLine = in.readLine()) != null) {
                    fcmServerResponse.append(inputLine);
                }

     fcmServerResponse.toString()//This is response from FCM

添加有问题的代码,并添加来自firebase服务器的响应消息而不是来自firebase服务器的任何响应消息。但当我在本地机器或任何其他机器上运行它时,它工作正常。当网站在OPENSHIFT上发布时出现问题。Check FCM将返回http响应,并返回成功或错误示例{“multicast\u id”:*********,“success”:1,“failure”:1,“canonical\u id”:0,“results”:[{“error”:“NotRegistered”},{“message\u id”:“0:*************”}]添加有问题的代码,并添加来自firebase服务器的响应消息而不是来自firebase服务器的任何响应消息。但当我在本地机器或任何其他机器上运行它时,它工作正常。当网站在OPENSHIFT上发布时出现问题。检查FCM将返回http响应,返回成功或错误示例{“multicast\u id”:*********,“success”:1,“failure”:1,“canonical\u id”:0,“results”:[{“error”:“NotRegistered”},{“message\u id”:“0:*************”}}}很抱歉延迟回复,我在本地机器上运行此代码,我得到以下输出{“多播_-id”:6315909649349302325,“成功”:1,“失败”:0,“规范_-id”:0,“结果”:[{“消息_-id”:“0:1493277552356%8c21b8c8f9fd7ecd”}]}我的消息在android上成功发送app@Rajeshchopade你在openshift中获得了什么输出?由于openshift是由第三方运行的,我没有凭据,上面的响应是什么意思?我的消息是否成功传递?@Rajeshchopade你在问题中说它在openshift中不起作用,所以我在回答中添加了cod显示firebase的响应,该响应类似于{“multicast_id”:*************,“success”:1,“failure”:1,“canoni”‌校准ID“:0,“结果”‌​:[{“error”:“NotRegis‌​“},{”消息\u id‌​“:“0:*******”}]}@Rajeshchopade使用fcmServerResponse.toString()字符串将其显示在网页中,以便我们可以看到消息(例如:{“multicast_id”:**********,“success”:1,“failure”:1,“canoni”‌​‌校准ID“:0”,结果‌​"‌​:[{“error”:“NotRe‌​地理信息系统‌​“},{”消息‌​通用id‌​":"0:********‌​***“}]})从openshiftsorry运行延迟回复时,我在本地机器上运行此代码,我得到以下输出{“multicast_id”:6315909649349302325,“success”:1,“failure”:0,“canonical_id”:0,“results”:[{“message_id”:“0:14932775556%8c21b8c8f9fd7ecd”}]我的消息在android上成功发送app@Rajeshchopade你在openshift中获得了什么输出?由于openshift是由第三方运行的,我没有凭据,上面的响应是什么意思?我的消息是否成功传递?@Rajeshchopade你在问题中说它在openshift中不起作用,所以我在回答中添加了cod显示firebase的响应,该响应类似于{“multicast_id”:*************,“success”:1,“failure”:1,“canoni”‌校准ID“:0,“结果”‌​:[{“error”:“NotRegis‌​“},{”消息\u id‌​“:“0:*******”}]}@Rajeshchopade使用fcmServerResponse.toString()字符串将其显示在网页中,以便我们可以看到消息(例如:{“multicast_id”:**********,“success”:1,“failure”:1,“canoni”‌​‌校准ID“:0”,结果‌​"‌​:[{“error”:“NotRe‌​地理信息系统‌​“},{”消息‌​通用id‌​":"0:********‌​***“}]})从openshift运行时