Я пытаюсь выяснить, как отправить сообщение 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.