使用 Firebase (FCM) 在 Android 设备上发送推送通知
Sending Push Notification on Android Device using Firebase (FCM)
我正在尝试使用 C#.Net 中的 FCM 在 android 设备上发送推送通知,但我收到 "InvalidRegistration" 错误消息。
我也使用了 Postman 和 R-Client 中的相同方法,但仍然出现相同的错误。
public String SendNotificationFromFirebaseCloud()
{
string DeviceToken = "RegToken";
string YOUR_FIREBASE_SERVER_KEY = "ServerKey";
var result = "-1";
var webAddr = "https://fcm.googleapis.com/fcm/send";
var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Headers.Add("Authorization:key=" + YOUR_FIREBASE_SERVER_KEY);
httpWebRequest.Headers.Add(string.Format("Sender: id={0}", "MySenderId"));
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "{\"to\":\"" + DeviceToken + "\",\"data\":{\"message\": \"Welcome\"}}";
streamWriter.Write(json);
streamWriter.Flush();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
result = streamReader.ReadToEnd();
}
return result;
}
{"multicast_id":8671409506357877791,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}
"invalid registration"表示设备令牌不正确,未指向现有设备。
请注意,这并不意味着设备已关闭,它意味着(当前)根本没有设备使用该令牌。
换句话说,它表示收件人地址错误,实际上相当于 HTTP 404 错误。
我正在尝试使用 C#.Net 中的 FCM 在 android 设备上发送推送通知,但我收到 "InvalidRegistration" 错误消息。
我也使用了 Postman 和 R-Client 中的相同方法,但仍然出现相同的错误。
public String SendNotificationFromFirebaseCloud()
{
string DeviceToken = "RegToken";
string YOUR_FIREBASE_SERVER_KEY = "ServerKey";
var result = "-1";
var webAddr = "https://fcm.googleapis.com/fcm/send";
var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Headers.Add("Authorization:key=" + YOUR_FIREBASE_SERVER_KEY);
httpWebRequest.Headers.Add(string.Format("Sender: id={0}", "MySenderId"));
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "{\"to\":\"" + DeviceToken + "\",\"data\":{\"message\": \"Welcome\"}}";
streamWriter.Write(json);
streamWriter.Flush();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
result = streamReader.ReadToEnd();
}
return result;
}
{"multicast_id":8671409506357877791,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}
"invalid registration"表示设备令牌不正确,未指向现有设备。
请注意,这并不意味着设备已关闭,它意味着(当前)根本没有设备使用该令牌。
换句话说,它表示收件人地址错误,实际上相当于 HTTP 404 错误。