我的应用程序是用NativeScript开发的。对于FCM,我使用nativescript-plugin-firebase
.
每当我尝试从 FCM 控制台时,我都会收到推送通知。但是,当我尝试从邮递员那里时,我从未收到过推送通知,如下所示。
URL : POST : https://fcm.googleapis.com/fcm/send
Headers : Authorization = key="******", Content-Type=application/json
数据:
{
"data": {
"title": "RAJA RAJA",
"message": "another test",
"name": "Muthukumar ME"
},
"to" : "**************************************"
}
响应:
{
"multicast_id": 5806593945960213086,
"success": 1,
"failure": 0,
"canonical_ids": 0,
"results": [
{
"message_id": "0:1521623661699559%161a06bff9fd7ecd"
}
]
}
任何人都知道我错过了什么,当我尝试在邮递员中时推送通知没有出现,即使我得到了成功的响应。
{
"to" : "********",
"priority": "high",
"notification": {
"title": "Title",
"body" : "First Notification",
"text": "Text"
}
}
我正在通过"主题"发送通知,例如:-
{
"to" : "/topics/XXXX",
"notification" : {
"body" : "First Notification",
"title": "Collapsing A",
"click_action":"DisplayTestActivity"
},
"data" : {
"body" : "First Notification",
"title": "Collapsing A",
"key_1" : "Data for key one",
"click_action":"DisplayTestActivity"
}
}
如果您发送这样的通知,但无法通过邮递员收到通知,那么
"确保以下行应该是他们在您的启动活动或第一页意味着在您收到通知之前执行">
FirebaseMessaging.Instance.SubscribeToTopic("XXXX");
if(!GetString(Resource.String.google_app_id).Equals("XXXXXXXXXXXXXXXXXXXXX")) throw new System.Exception("Invalid Json file");
Task.Run(() =>
{
var instanceId = FirebaseInstanceId.Instance;
instanceId.DeleteInstanceId();
Android.Util.Log.Debug("TAG", "{0} {1}", instanceId.Token, instanceId.GetToken(GetString(Resource.String.gcm_defaultSenderId), Firebase.Messaging.FirebaseMessaging.InstanceIdScope));
});
*上面的代码是C#的,所以使用你的编程语言。 谢谢
使用 HTTP 协议和 POSTMAN 发送数据消息
您必须从 Firebase 控制台复制 Legecy 服务器密钥>项目设置>云消息传递
注意:Firebase 已将我们的服务器密钥升级到新版本。您可以继续使用旧版服务器密钥,但建议您升级到最新版本。
选择"开机自检"。输入请求 URL 作为 https://fcm.googleapis.com/fcm/send 添加标头授权:键=或授权:键=和内容类型:应用程序/json。
与邮递员一起设置 现在,选择正文>原始> JSON(应用程序/json)并添加以下代码:
{
"to" : "YOUR_FCM_TOKEN_WILL_BE_HERE",
"collapse_key" : "type_a",
"notification" : {
"body" : "First Notification",
"title": "Collapsing A"
},
"data" : {
"body" : "First Notification",
"title": "Collapsing A",
"key_1" : "Data for key one",
"key_2" : "Hellowww"
}
}
您可以推送通用通知(带有通知有效负载)或自定义通知(带有通知和数据有效负载)并点击发送。
{
"to" : "YOUR_FCM_TOKEN_WILL_BE_HERE",
"collapse_key" : "type_a",
"data" : {
"body" : "First Notification",
"title": "Collapsing A",
"key_1" : "Data for key one",
"key_2" : "Hellowww"
}
}
请注意,仅当有效负载中只有数据(无通知)节点时,才会触发自定义通知。因此,您需要将正文和标题移动到数据节点。
请记住:如果要向具有相应firebase_instance_id的多个设备发送通知,请使用registration_ids而不是节点。
- 在移动设备中打开应用程序并将其连接到PC
- 然后在打开 chrome 并将此
chrome://inspect/#devices
粘贴到远程目标命中检查:演示1 - 然后,您将在"已注册的设备"下看到
registrationId
- 复制此 ID 并将其粘贴在 "to":"
registrationId
" 之后POSTMAN
: Demo2
希望对您有所帮助!
确保在请求中添加了"priority" : "high"
{
"to":"your_fcm_token",
"notification":{
"body":"sample body",
"content_available":true,
"title":"hello"
},
"priority":"high",
"data":{
"key":"value"
}
}