Сообщения Firebase из приложения консоли .net не получены приложением - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь выяснить, как отправить сообщение Firebase из .net, я использую консольное приложение для тестирования.В моем приложении Flutter настроен firebase, и он работает, когда я отправляю сообщения из консоли Firebase, однако, когда я отправляю их из приложения консоли, я не получаю их, даже если приложение консоли получает сообщение SUCCESS.Вот код для приложения .NET:

using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
using Newtonsoft;

namespace FCM
{
    class Program
{
    static void Main(string[] args)
    {
        string resend;
        do
        {
            WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send");
            tRequest.Method = "post";
            tRequest.ContentType = "application/json";
            var objNotification = new
            {
                to = "eN9qobQEC4s:APA91bEECzVJTnTRFTbfveMr3EjmfH6RcOkwJ_Aku7pS_TYP7vTylaMKu0b5_d-mmU3SVAgzniErc1hEwkC3qzwz2XOIbjX4PfFMwa4cOijpkzybo9uvLqD0Bv1pEX0QV1vzSAnycx4v",
                data = new
                {
                    title = "Hello",
                    body = "From .NET",
                    icon = "/twitter_profile.jpg"
                }
            };
            string jsonNotificationFormat = Newtonsoft.Json.JsonConvert.SerializeObject(objNotification);

            Byte[] byteArray = Encoding.UTF8.GetBytes(jsonNotificationFormat);
            tRequest.Headers.Add(string.Format("Authorization: key={0}", "AAAAZ-c83kU:APA91bHtbBi7wOssNEUFuv-oSp7bxn9uA-JIWPOp2WvlaX5lCn9RG_e_7YJvAVHhWKK9h4H4E3f-DEjSM-5cHRSzAp7NWALudICgAHzjI1ngcdbWzwK2BW83MNIMNxFbFw1dvik4X9bu"));
            tRequest.Headers.Add(string.Format("Sender: id={0}", "446261157445"));
            tRequest.ContentLength = byteArray.Length;
            tRequest.ContentType = "application/json";
            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 responseFromFirebaseServer = tReader.ReadToEnd();

                            FCMResponse response = Newtonsoft.Json.JsonConvert.DeserializeObject<FCMResponse>(responseFromFirebaseServer);
                            if (response.success == 1)
                            {

                                Console.WriteLine("succeeded");
                            }
                            else if (response.failure == 1)
                            {
                                Console.WriteLine("failed");

                            }

                        }
                    }

                }
            }

            resend = Console.ReadLine();
        } while (resend == "c");
    }

}

public class FCMResponse
{
    public long multicast_id { get; set; }
    public int success { get; set; }
    public int failure { get; set; }
    public int canonical_ids { get; set; }
    public List<FCMResult> results { get; set; }
}
public class FCMResult
{
    public string message_id { get; set; }
}
}

Все необходимые настройки присутствуют в приложении FLutter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...