2016-12-26 59 views
1

我試圖創建一個Java應用程序應該發送協議火力地堡雲端通訊服務器。 現在我有這個問題,我不知道如何看我的郵件是否正確發送。當我前往網絡控制檯Firebase /通知沒有消息看到。火力地堡雲消息發送HTTP-POST在Java中

我的代碼(以防萬一):

import org.apache.http.HttpResponse; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.entity.StringEntity; 
import org.apache.http.impl.client.HttpClientBuilder; 
import org.json.JSONObject; 

public class Mainclass { 
public static void main(String[] args) { 
    // Declaration of Message Parameters 
    String message_url = new String("https://fcm.googleapis.com/fcm/send"); 
    String message_sender_id = new String("XXXX-XXXX"); 
    String message_key = new String("key=XXXX-XXXX"); 

    // Generating a JSONObject for the content of the message 
    JSONObject message = new JSONObject(); 
    message.put("message", "TEXT"); 
    JSONObject protocol = new JSONObject(); 
    protocol.put("to", message_sender_id); 
    protocol.put("data", message); 

    // Send Protocol 
    try { 
     HttpClient httpClient = HttpClientBuilder.create().build(); 

     HttpPost request = new HttpPost(message_url); 
     request.addHeader("content-type", "application/json"); 
     request.addHeader("Authorization", message_key); 

     StringEntity params = new StringEntity(protocol.toString()); 
     request.setEntity(params); 
     System.out.println(params); 

     HttpResponse response = httpClient.execute(request); 
     System.out.println(response.toString()); 
    } catch (Exception e) { 
    } 
} 
} 

輸出:

[Content-Type: text/plain; charset=ISO-8859-1,Content-Length: 59,Chunked: false] 


HttpResponseProxy{HTTP/1.1 200 OK [Content-Type: application/json; charset=UTF-8, Date: Mon, 26 Dec 2016 12:09:13 GMT, Expires: Mon, 26 Dec 2016 12:09:13 GMT, Cache-Control: private, max-age=0, X-Content-Type-Options: nosniff, X-Frame-Options: SAMEORIGIN, X-XSS-Protection: 1; mode=block, Server: GSE, Alt-Svc: quic=":443"; ma=2592000; v="35,34", Transfer-Encoding: chunked] [email protected]} 

謝謝!

PS有FCM https://firebase.google.com/docs/cloud-messaging/server

+0

嘿,我也在嘗試同樣的事情。現在我正在嘗試一種不同的方式來發送它。如果成功,我會成功:1種消息。 ..然後我回復。 – Debasish

回答

0

的參考通過「怎麼看,如果我的消息被正確地發送」,我假定你的意思是,如果它是對客戶端應用程序設備發送。

對於這種情況,您可以使用Delivery Receipts。但是,您必須實施XMPP server,而不是常規的HTTP連接服務器。

也有一種檢查方式是使用Diagnostics tool,但要求此功能至少適用於Alpha測試。


唯一的日誌/詳細信息您可以在火力地堡控制檯中看到的是使用火力地堡控制檯本身發送的消息,它不會顯示使用FCM REST API發送的任何消息。


另外,如果你是屬於只需驗證如果消息對FCM服務器發送正確的,那麼你應該檢查response。通常,它應該返回"success": 1message_id