Xamarin Forms не получает уведомления о пожарной базе, отправленные с php - PullRequest
0 голосов
/ 31 марта 2020

Я работаю над платформой Xamarin Forms для реализации уведомления Firebase. Я добавил google-services. json и GoogleService-Info.plist в приложения android и IOS соответственно, установив соответствующее свойство. Я сгенерировал собственный код токена и, используя службу зависимостей, получаю сгенерированный токен для отправки уведомления на том же или другом устройстве. Для отправки уведомления я использую php, так как мое приложение использует php в качестве посредника для связи с базой данных и формами xamarin.

class MyFirebaseIIDService : FirebaseInstanceIdService, IPushHelper
{  
 public string GetPushToken()
 {

     return FirebaseInstanceId.Instance.Token;
 }   
}
 public interface IPushHelper
  {
        string GetPushToken();
 }

Вот так я получаю доступ к токену в формах Xamarin

string token = DependencyService.Get<IPushHelper>().GetPushToken();

PHP Код для отправки уведомления

 $fields = array(
                'to'  => $token // Token Generated By Xamarin Forms
                'data'=>  array("message"=>$message) // Message For Notification
                );
//Header Including API Key
$headers = array(
'Content-Type:application/json',
'Authorization:key='.$api_key
);

$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('FCM Send Error: ' . curl_error($ch));
}
curl_close($ch);

Также я пробовал shell_exe c () для запуска curl

 $result =shell_exec('curl -X POST --header "Authorization: key='.$api_key.'" --header "Content-Type: application/json" https://fcm.googleapis.com/fcm/send -d "{\"to\":\"'.$token.'\",\"priority\":\"high\",\"notification\":{\"body\": \"'.stripslashes($message).'\"}}"');

Вывод для результата:

"{" multicast_id ": 8563984716459935776," success ": 1," fail " : 0, "canonical_ids": 0, "results": [{"message_id": "0: 1585669578263131% 631c6722f9fd7ecd"}]} "

Но мое приложение не получает pu sh уведомление и я мог видеть уведомление об отправке в консоли Firebase. Пожалуйста, помогите мне для отправки и получения уведомлений с помощью Firebase

...