Esle Ответов: 0

Как отправить push-уведомление из моего веб-api в приложение платформы android и iOS?


Я не получаю никаких ошибок, но и не получаю никаких сообщений на своем android-устройстве.

Что я уже пробовал:

[HttpPost]
    public string SendGCMNotification(string deviceId)
    {

        string apiKey = "xxxxxxxxxxxxxxxxxxxxxg";
        string postData;

       

        string message = "Demo";
        string tickerText = "Demoo";
        string contentTitle = "Demor";
        string SENDER_ID = "xxxxxxx";

        postData = "{ \"registration_ids\": [ \"" + deviceId + "\" ], " + "\"data\": {\"tickerText\":\"" + tickerText + "\", " +
                 "\"contentTitle\":\"" + contentTitle + "\", " +
                 "\"message\": \"" + message + "\"}}";

        string postDataContentType = "application/json";

        ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateServerCertificate);


        byte[] byteArray = Encoding.UTF8.GetBytes(postData);


        HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("https://android.googleapis.com/gcm/send");
        Request.Method = "POST";
          Request.KeepAlive = false;

        Request.ContentType = postDataContentType;
        Request.Headers.Add(string.Format("Authorization: key={0}", apiKey));
        Request.Headers.Add(string.Format("Sender: id={0}", SENDER_ID));
        Request.ContentLength = byteArray.Length;

        Stream dataStream = Request.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();


        try
        {
            WebResponse Response = Request.GetResponse();

            HttpStatusCode ResponseCode = ((HttpWebResponse)Response).StatusCode;
            if (ResponseCode.Equals(HttpStatusCode.Unauthorized) || ResponseCode.Equals(HttpStatusCode.Forbidden))
            {
                var text = "Unauthorized - need new token";
            }
            else if (!ResponseCode.Equals(HttpStatusCode.OK))
            {
                var text = "Response from web service isn't OK";
            }

            StreamReader Reader = new StreamReader(Response.GetResponseStream());
            string responseLine = Reader.ReadToEnd();
            Reader.Close();

            return responseLine;
        }
        catch (Exception e)
        {
        }
        return "error";
    }


    public static bool ValidateServerCertificate(
                                                 object sender,
                                                 X509Certificate certificate,
                                                 X509Chain chain,
                                                 SslPolicyErrors sslPolicyErrors)
    {
        return true;
    }

Suvendu Shekhar Giri

есть успехи с отладкой? есть какие-нибудь зацепки?

Esle

нет.
когда я отправляю запрос, он дает идентификатор в ответ на мой restclient.
больше ничего и никакого влияния на мое приложение для android, так как я уже открыл приложение на своем устройстве android

Esle

Могу ли я узнать, как я могу отправить изображение в push-уведомлении с помощью fcm c#?

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Вы открыли какое-нибудь соединение сокета?

Esle

Нет @Tadish Dash

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Тогда как вы уведомляете клиентов?

Biinny

Я делаю то же самое. Я получаю форму ошибки тайм-аута запроса "Stream dataStream = Request.GetRequestStream ();" строка

0 Ответов