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); }
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; } }