firebase
カスタムサーバーからのプッシュ通知
サーチ…
前書き
これは、サーバーでFirebase admin SDKを実行している場合、 HTTP Post要求を使用する2つの方法を使用して実行できます。ここでは、それらの両方について説明します。
Firebase Cloud Messaging HTTPプロトコル
下のリンクへのあなたのサーバーリクエストからいくつかのリクエストパラメータで通知を送信する
https://fcm.googleapis.com/fcm/send
ヘッダーの追加を要求する際は、次のようにします
Authorization key=<Your_key_from_the_console>
Content-Type application/json
リクエストの本文はさまざまです
{
"to" : <tokens or the topic>,
"notification" : {
"title":"This is a test title",
"body":"This is the body"
},
"data": {
//whatever key value payer you need to send
}
}
toパラメータは、トークンの配列を取る
["token1","token2",..........]
のような単一のトークン
"token"
/ topic / likeで始まるトピック名
"/topic_name/"
||を使用する複数のトピック使用条件についてと&&演算子は好きです
"/topic_name/ && /topic2/"
Admin SDK(ノードjs)の使用
firebase sdkとadmin SDKを最初に起動します。
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp({
credential: admin.credential.cert({
//your admin credential certificate generated from the console. Follow this [link][1].
}),
databaseURL: "https:///<PROJECT_NAME>.firebaseio.com"
});
最初の例のように、ペイロードJSON文字列を作成します。
var payload = {
notification: {
title: "Title of the notification,
body: "Body of the notification",
},
data:{
//required key value pair
}
};
次に、さまざまなsendメソッドを呼び出して通知を送信します。
トピックの場合
admin.messaging().sendToTopic("/topic/", payload)
.then(function(response) {
console.log("Successfully sent message:", response);
})
.catch(function(error) {
console.log("Error sending message:", error);
});
});
デバイスの場合
admin.messaging().sendToDevice(token, payload).then(response=>{
response.results.forEach((result, index) => {
const error = result.error;
if (error) {
console.error('Failure sending notification to', tokens, error);
} else{
console.log('Sucessfully sent to '+tokens);
}
});
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow