Пример #1
0
 protected void Button1_Click(object sender, EventArgs e)
 {
     UserService objUS = new UserService();
     RequestGCMPass objGCMPass = new RequestGCMPass();
     objGCMPass.tickerText = "Ticker text for GCM";
     objGCMPass.message = txtMessage.Text;
     objGCMPass.contentTitle = txtTitle.Text;
     objUS.sendGCMPost(objGCMPass);
 }
Пример #2
0
    public ResponeGCMPass sendGCMPost(RequestGCMPass objRequestGCMPass)
    {
        ResponeGCMPass response = new ResponeGCMPass();

        string GCMAPIKey = System.Web.Configuration.WebConfigurationManager.AppSettings["GCMAPIKey"].ToString();
        string registrationIds = string.Empty;

        var deviceRegistrationIds = (from a in dc.gcmRegistrations
                     select a.deviceRegistrationId).ToList();

        foreach (var item in deviceRegistrationIds)
        {
            registrationIds += item + ",";
        }

        if (registrationIds.Length > 0)
        {
            registrationIds = registrationIds.Substring(0, registrationIds.Length - 1);
        }

        string postData = "{ \"registration_ids\": [ \"" + registrationIds + "\" ], \"data\": {\"tickerText\":\"" + objRequestGCMPass.tickerText + "\", \"contentTitle\":\"" + objRequestGCMPass.contentTitle + "\", \"message\": \"" + objRequestGCMPass.message + "\"}}";

        ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateServerCertificate);

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

        //  CREATE REQUEST
        HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("https://android.googleapis.com/gcm/send");
        Request.Method = "POST";
        Request.KeepAlive = false;
        Request.ContentType = "application/json";
        Request.Headers.Add(string.Format("Authorization: key={0}", GCMAPIKey));
        Request.ContentLength = byteArray.Length;

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

        //  SEND MESSAGE
        try
        {
            WebResponse Response = Request.GetResponse();
            HttpStatusCode ResponseCode = ((HttpWebResponse)Response).StatusCode;
            if (ResponseCode.Equals(HttpStatusCode.Unauthorized) || ResponseCode.Equals(HttpStatusCode.Forbidden))
            {
                response.result = "201";
                response.message = "Unauthorized - need new token";
                return response;
            }
            else if (!ResponseCode.Equals(HttpStatusCode.OK))
            {
                response.result = "201";
                response.message = "Response from web service isn't OK";
                return response;
            }

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

            response.result = "200";
            response.message = "Message Send Successfull!!";
            return response;
        }
        catch (Exception e)
        {
            response.result = "201";
            response.message = "Error: "+e.Message;
            return response;
        }
    }