使用Firebase(FCM)在Android设备上发送推送通知

时间:2019-05-10 10:40:04

标签: c# .net firebase firebase-cloud-messaging android-push-notification

我正在尝试使用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,“成功”:0,“失败”:1,“ canonical_ids”:0,“结果”:[{“错误”:“无效注册”}]}}

1 个答案:

答案 0 :(得分:0)

“无效注册”表示设备令牌不正确,未指向现有设备。

请注意,这并不意味着设备已关闭,这意味着(当前)根本没有设备使用该令牌。

换句话说,这表示收件人地址错误,实际上等同于HTTP 404错误。