2016-07-13 3 views
0

Ich bin neu bei PHP. Ich implementiere den Firebase Push-Benachrichtigungsdienst in PHP.JSON-Objekt in PHP erstellen und dies über Firebase Push-Benachrichtigung senden

Das erforderliche Json-Objekt ist

{ "data": { 
    "score": "5x1", 
    "time": "15:10" 
    }, 
    "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..." 
} 

Jetzt in Feuerbasis muß ich meine Daten in diesem Format senden, aber ich bin nicht sicher, wie JSON-Objekt dieser Daten zu machen und dieses Objekt in Feuerbasis verwenden.

Und wenn ich Array von IDs verwenden möchte, dann wie das funktioniert?

Laut offiziellen Firebase-Dokumentation haben sie nicht definiert, Methode zur Verwendung Array von IDs.

https://firebase.google.com/docs/cloud-messaging/downstream

+0

auf eine Liste der Geräte zu senden, würden Sie ein Array von IDs senden , "Token3"] '. Siehe http://stackoverflow.com/questions/13511167/how-to-send-gcm-messages-to-multiple-devices-at-a-time –

Antwort

0

Erstellen Sie ein Array in einem gleichen Format, das Sie

$arr = ['data'=> [ 
     'score'=> "5x1", 
     'time'=> "15:10" 
     ], 
     "to" => "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..." 
     ]; 

und dann mit der PHP-Funktion json_encode (var) wie unten auf Firebase gesendet werden soll; und es wird dir das Json-Objekt zurückgeben.

json_encode($arr) 

und wenn ich will, dann Array von ID verwenden, wie dies funktionieren wird. Ich bin mir da nicht sicher.

+0

Danke lassen Sie mich versuchen –

0

Wenn Sie versuchen, ein POST mit PHP senden könnten Sie cURL verwenden:

<?php 
    $firebase_url = 'https://fcm.googleapis.com/fcm/send'; 
    $message = [ 
     "data" => [ 
      "score" => "5x1", 
      "time" => "15:10" 
     ], 
     "to": "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..." 
    ]; 

    $json_message = json_encode($message); 

    //open connection 
    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_URL, $firebase_url); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $json_message); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, [ 
     'Content-Type: application/json', 
     'Content-Length: ' . strlen($json_message) 
    ]); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

    //execute post 
    $result = curl_exec($ch); 

    print $result; 

Ich werde mit Guzzle empfehlen, die Dritte Bibliothek ist und sauberer und besser benutzbar/verständlich. Um es zu installieren:

php composer.phar require guzzlehttp/guzzle 

Und hier einige Beispiele: ` "bis": [ "token1", "token2" http://docs.guzzlephp.org/en/latest/

+0

Vielen Dank. Lass mich nachschauen. aber sag mir, wenn ich msg an mehrere IDs senden möchte, wie werden wir es dann ändern? –

+0

und warum Sie ändern {} zu [] –

+0

Die Sache ist JSON nicht eine Datenstruktur in PHP ist. Sie definieren also ein Array und formatieren dieses Array dann als gültigen JSON-String mit 'json_encode'. Sie könnten auch ein Objekt erstellen und es als 'JsonSerializable' implementieren, aber Sie werden in einem ähnlichen Szenario wie' json_encode' enden, könnten aber für OOP-Fälle robuster sein. – fjcero

Verwandte Themen