Как отправить уведомление из сервиса WCF на android с помощью firebase
Я создал службу wcf для отправки уведомлений в мое приложение для android, но она не работает
Что я уже пробовал:
мой метод wcf таков
public string SendNotification1(string serverApiKey, string senderId, string deviceId, string message) { string result; var value = message; WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send"); tRequest.Method = "post"; tRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"; tRequest.Headers.Add(string.Format("Authorization: key={0}", serverApiKey)); tRequest.Headers.Add(string.Format("Sender: id={0}", senderId)); string postData = "collapse_key=score_update&time_to_live=108&delay_while_idle=1&data.message=" + value + "&data.time=" + System.DateTime.Now.ToString() + "®istration_id=" + deviceId + ""; Byte[] byteArray = Encoding.UTF8.GetBytes(postData); tRequest.ContentLength = byteArray.Length; 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 sResponseFromServer = tReader.ReadToEnd(); } } } } return message; }
мой iService:
[OperationContract] [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, UriTemplate = "SendNotification?serverApiKey={serverApiKey}&senderId={senderId}&deviceId={deviceId}&message={message}")] string SendNotification1(string serverApiKey, string senderId, string deviceId, string message);
когда мое android приложение запускается я использую сервис для сохранения токена устройства
Я отправляю полное уведомление об успехе с помощью PHP, но мне это нужно с помощью сервиса wcf
php-код таков
<?php function send_notification ($tokens, $message) { $url = 'https://fcm.googleapis.com/fcm/send'; $fields = array( 'registration_ids' => $tokens, 'data' => $message ); $headers = array( 'Authorization:key =mykeyyyyyyy', 'Content-Type: application/json' ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); $result = curl_exec($ch); if ($result === FALSE) { die('Curl failed: ' . curl_error($ch)); } curl_close($ch); return $result; } $conn = mysqli_connect("localhost","root","","fcm2"); $sql = " Select Token From users"; $result = mysqli_query($conn,$sql); $tokens = array(); if(mysqli_num_rows($result) > 0 ){ while ($row = mysqli_fetch_assoc($result)) { $tokens[] = $row["Token"]; } } mysqli_close($conn); $message = array("message" => "my message"); $message_status = send_notification($tokens, $message); echo $message_status ; ?>
как создать эту функцию в c# с помощью службы wcf
любое предложение
извините за мой английский
Afzaal Ahmad Zeeshan
Я буду рекомендовать использовать Концентраторы Уведомлений Azure Они предоставляют очень хорошие способы управления и отправки push-уведомлений на ваши устройства, а не только на Android, но и на платформу, поддерживающую Windows Phone, iOS и т. д.