https://firebase.google.com/docs/cloud-messaging/server에 Android 애플리케이션 용 FCM 알림을 처음 사용했습니다. 나는 그것을 읽고 FCM 서버 정보 페이지 요구 사항에서 다음과 같이 밝혀졌습니다.언제 Firebase Cloud Messaging을위한 앱 서버가 필요합니까?
사용자 환경에 구현해야하는 응용 프로그램 서버. 이 응용 프로그램 서버는
그러나, 이것에 대해 몹시 혼란 스러워요 적절한 XMPP 또는 HTTP 프로토콜을 사용하여, 선택한 FCM 연결 서버를 통해 클라이언트 응용 프로그램에 데이터를 전송합니다. 나는이 기사에 자세한 내용을 읽으면서, 나는이처럼 보이는 API가 있음을 참조하십시오
POST http://fcm.googleapis.com/fcm/send
을 내가 OkHttpClient
같은 것을 사용하여이 API를 호출 등처럼 내 요청을 빌드하는 경우, (내가 가진 것을 제공 인증 헤더와 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 알림을 구현하면 좋을 것입니다. 누군가 우리가 앱 서버가 필요한 곳이나 시점을 예를 들어 줄 수 있거나 실제로 구현해야하는 방법을 제시 할 수 있다면 그 점도 큰 도움이 될 것입니다. 감사!
예 Firebase API –
을 사용하여 기기에서 알림을 보낼 수 있습니다. –
* firebaser here * API를 통해 다운 스트림 메시지를 보내려면 프로젝트의 서버 키를 사용해야합니다. 이 키는 앱을 대신하여 메시지를 보낼 수 있으므로 사용자에게 보내는 앱에는 절대 * 포함되지 않아야합니다. 따라서 앱 서버가 필요합니다. –