このメッセージとメッセージ構造を持つAmazon SNSコンソールの公開エンドポイントを使用してアプリケーションサーバーからアンドロイドデバイスにプッシュ通知(PN)を送信しようとしましたが、正常に動作しています。Amazon SNS GCM/FCMメッセージのペイロード
{
"GCM": "{ \"notification\": { \"text\": \"test message\" } }"
}
しかし、Javaで同じものを実装しようとすると、デバイスは通知を受け取りません。
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;
}
}
コンソール
Publist要求に応答:{TargetArn: ARN:AWS:SNS:AP-南1:818862955266:エンドポイント/ GCM /でTestApp/a1ec8114-58c9-371b-メッセージ構造体: json、MessageAttributes:{}} {MessageId:{"message": "}"メッセージ構造体: {"Default": "Test"、 "GCM" 7dfb613c-06d0-5fe6-8766-3068c9438614} {AWS_REQUEST_ID = 3d0e13f4-b2be-5c95-ad43-42a07d2d5567}
何が問題なのですか?
また、私はSO回答hereで提案されているパターンに従っています。