Ich versuche, eine Push-Benachrichtigung (PN) von meinem Anwendungsserver an ein Android-Gerät mit Veröffentlichungsendpunkt in der Amazon SNS-Konsole mit dieser Nachricht und Nachrichtenstruktur als json es funktioniert.Amazon SNS GCM/FCM Nachrichtennutzlast
Aber wenn ich versuche, das gleiche in Java zu implementieren, erhält das Gerät die Benachrichtigung nicht.
PublishRequest publishRequest = new PublishRequest();
publishRequest.setTargetArn("arn:aws:sns:ap-south-1:818862955266:endpoint/GCM/TestApp/a1ec8114-58c9-371b-bb76-d8d16e674e52");
String message = "{\"GCM\": \"{ \"notification\": { \"text\": \"test message\" } }\"}";
ObjectMapper mapper = new ObjectMapper();
PushRequest pushRequest = new PushRequest();
pushRequest.setDef("Test");
GCM gcm = new GCM();
Notification notification = new Notification();
notification.setText("hello");
gcm.setNotification(notification);
pushRequest.setGcm(gcm);
String jsonInString = mapper.writeValueAsString(pushRequest);
publishRequest.setMessage(jsonInString);
publishRequest.setMessageStructure("json");
System.out.println("Publist request:"+publishRequest.toString());
PublishResult publishResult = amazonSNSTemplate.getAmazonSNSClient().publish(publishRequest);
System.out.println(publishResult.toString());
System.out.println(publishResult.getSdkResponseMetadata().toString());
public class PushRequest {
@JsonProperty("default")
private String def;
@JsonProperty("GCM")
private GCM gcm;
public String getDef() {
return def;
}
public void setDef(String def) {
this.def = def;
}
public GCM getGcm() {
return gcm;
}
public void setGcm(GCM gcm) {
this.gcm = gcm;
}
}
public class GCM {
private Notification notification;
@JsonProperty("notification")
public Notification getNotification() {
return notification;
}
public void setNotification(Notification notification) {
this.notification = notification;
}
}
public class Notification {
private String text;
@JsonProperty("text")
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
Antwort auf der Konsole
Publist Anfrage: {TargetArn: arn: aws: sns: ap-Süd-1: 818862955266: Endpunkt/GCM/TestApp/a1ec8114-58c9-371b- bb76-d8d16e674e52, Nachricht: {"Standard": "Test", "GCM": {"Benachrichtigung": {"Text": "Hallo"}}}, MessageStructure: json, MessageAttributes: {}} {MessageId: 7dfb613c-06d0-5fe6-8766-3068c9438614} {AWS_REQUEST_ID = 3d0e13f4-b2be-5c95-ad43-42a07d2d5567}
Was könnte das Problem sein?
Auch ich folge dem Muster in der SO Antwort here vorgeschlagen.