beniv Ответов: 0

Как отправить уведомление из сервиса 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 и т. д.

0 Ответов