Это очень просто.Создайте следующие классы.
public interface RestInterface {
@Headers({
"Content-Type: application/json",
"Authorization: key=<YOUR_FCM_SERVER_KEY_HERE>"
})
@POST("fcm/send")
Call<ResponseBody> sendNotification(@Body NotificationBody body);
}
Замените <YOUR_FCM_SERVER_KEY_HERE>
фактическим ключом сервера FCM.
public class NotificationBody {
@SerializedName("data")
private Data data;
@SerializedName("to")
private String to;
public NotificationBody(Data data, String to) {
this.data = data;
this.to = to;
}
}
Над классом POJO будет сгенерирован внешний JSONObject во время выполнения.И следующий класс POJO сгенерирует data
JSONObject.
public class Data {
@SerializedName("title")
private String title;
@SerializedName("content")
private String content;
public Data(String title, String content) {
this.title = title;
this.content = content;
}
}
И, наконец, используйте указанный выше код в ваших классах Activity / Fragment, как показано ниже,
String title = "My Title";
String content = "My message";
String to = "cKA7LrjBQ6s:APA91bHtY6RBwZ4KZvxbl9VNZMVKz5_NDbE2dP3zgrhJNBSAKDyfOAbfxEi8pnAwc82pzLoGEZImZBv9MXvoBSJy6c0790oqUIYLECCU5WZVcGeSJJNECX5bsLMutYrSPjLSDffP5N3u";
Data data = new Data(title, content);
NotificationBody body = new NotificationBody(data, to);
RestInterface api = ....;
Call<ResponseBody> call = api.sendNotification(body);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, final Response<ResponseBody> response) {
// do whatever you want to do
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
Log.e("TAG", "Error: ", t);
}
});
И не забудьтеустановите Retrofit BASE_URL
в https://fcm.googleapis.com/