https://firebase.google.com/docs/cloud-messaging/serverでAndroidアプリケーションのFCM通知を使用するのが初めてです。私はそれを読んで、About FCM Serverのページの要件で、次のように書かれています。Firebase Cloud Messagingのアプリケーションサーバーはいつ必要ですか?
あなたの環境に実装する必要のあるアプリケーションサーバー。このアプリ サーバーは
は、しかし、私はこのことについて痛んで混乱しています適切なXMPPやHTTPプロトコルを使用して、選択したFCM接続 サーバーを経由してクライアントアプリケーションにデータを送信します。私が持っているものとする(私はそうのようOkHttpClient
のようなものを使用して、このAPIを呼び出すと、私の要求を構築する場合
POST http://fcm.googleapis.com/fcm/send
:私は記事に続きを読むように、私はこのようになります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経由でダウンストリームメッセージを送信するには、プロジェクトのサーバーキーを使用する必要があります。このキーはあなたのアプリのためにメッセージを送ることができるので、あなたがあなたのユーザーに送るアプリに埋め込まれるべきではありません。したがって、アプリケーションサーバーの必要性。 –