Я новичок в использовании уведомлений FCM для приложений Android по адресу https://firebase.google.com/docs/cloud-messaging/server. Я читал об этом и обнаружил, что на странице «О требованиях к серверу FCM» говорится следующее:
Сервер приложений, который вы должны реализовать в своей среде. Этот сервер приложений отправляет данные клиентскому приложению через выбранный сервер соединений FCM, используя соответствующий протокол XMPP или HTTP.
Тем не менее, я очень смущен по этому поводу. Читая статью дальше, я вижу, что есть API, который выглядит так:
POST http://fcm.googleapis.com/fcm/send
Если я вызову этот API, используя что-то вроде OkHttpClient
, и создам свой запрос таким образом (при условии, что у меня есть заголовки аутентификации и тело POST)
private void sendRegistrationToServer(String token) {
OkHttpClient client = new OkHttpClient();
RequestBody body = new FormBody.Builder().add(“Body", "").build();
//Assuming I have authentication and body put in
Request request = new Request.Builder().url("http://fcm.googleapis.com/fcm/send”).post(body).build();
try {
client.newCall(request).execute();
} catch (IOException e) {
e.printStackTrace();
}
}
Смогу ли я теоретически отправить уведомление с любой информацией, которую я хочу, на это устройство? Я могу получить сообщение через следующий класс:
public class NotificationService extends FirebaseMessagingService {
...
// [START receive_message]
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
// TODO(developer): Handle FCM messages here.
Log.d(TAG, "From: " + remoteMessage.getFrom());
// Check if message contains a data payload.
if (remoteMessage.getData().size() > 0) {
Log.d(TAG, "Message data payload: " + remoteMessage.getData());
}
// Check if message contains a notification payload.
if (remoteMessage.getNotification() != null) {
Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
}
}
Я уверен, что мое понимание где-то неверно, поскольку в документации говорится, что нам нужен сервер приложений, но если бы кто-нибудь мог указать, где я неправильно понимаю, как реализовать уведомления FCM, это было бы здорово. Если бы кто-то мог привести пример того, где и когда нам понадобится сервер приложений, или как его ДЕЙСТВИТЕЛЬНО следует реализовать, это также было бы очень признательно. Спасибо!
String
? - person user1871869   schedule 02.10.2016