使用C#控制台应用程序通过FCM向Android发送通知

时间:2019-02-11 12:32:42

标签: c# android push-notification cron console-application

我正在尝试使用控制台应用程序向Android发送通知。

请在下面找到我的代码。

 public AndroidFCMPushNotificationStatus SendNotification(string serverApiKey, string senderId, string deviceId, string message)
        {
            AndroidFCMPushNotificationStatus result = new AndroidFCMPushNotificationStatus();

            try
            {
                result.Successful = false;
                result.Error = null;
                var value = message;
                var fcmurl = ConfigurationManager.AppSettings["fcmurl"];
                WebRequest tRequest = WebRequest.Create(fcmurl);
                tRequest.Method = "post";
                tRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
                tRequest.Headers.Add(string.Format("Authorization: key={0}", serverApiKey));
                tRequest.Headers.Add(string.Format("Sender: id={0}", senderId));

                string postData = "data.message=" + value + "&data.time=" + System.DateTime.Now.ToString() + "&registration_id=" + deviceId + "";

                Byte[] byteArray = Encoding.UTF8.GetBytes(postData);
                tRequest.ContentLength = byteArray.Length;

                using (Stream dataStream = tRequest.GetRequestStream())
                {
                    dataStream.Write(byteArray, 0, byteArray.Length);

                    using (WebResponse tResponse = tRequest.GetResponse())
                    {
                        using (Stream dataStreamResponse = tResponse.GetResponseStream())
                        {
                            using (StreamReader tReader = new StreamReader(dataStreamResponse))
                            {
                                String sResponseFromServer = tReader.ReadToEnd();
                                result.Response = sResponseFromServer;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                result.Successful = false;
                result.Response = null;
                result.Error = ex;
            }

            return result;
        }

 public class AndroidFCMPushNotificationStatus
        {
            public bool Successful
            {
                get;
                set;
            }

            public string Response
            {
                get;
                set;
            }
            public Exception Error
            {
                get;
                set;
            }
        }

相同的代码对我的Web应用程序正常工作,并且可以准确地发送通知。 但是现在我需要设置CRON(使用控制台应用程序)以每天发送通知。我使用了相同的FCMkey和projectid,但不适用于控制台。

一旦控制台将通知发送到android设备。 android设备显示消息“很遗憾,XXX已停止工作”

在回复中,我收到“ id = 0:1549886497782693%cc7ead1bf9fd7ecd ”。

我不明白那是什么意思。解决该问题的任何帮助或建议都是非常可取的。

谢谢

0 个答案:

没有答案