2017-07-24 2 views
-1

Je souhaite créer une notification push Web dans Php mais je n'ai pas la procédure exacte pour cela. Voici le code que j'ai trouvé, mais ça ne marche pas.Php: Création d'une notification push Web

<?php 
    require __DIR__ . '/../vendor/autoload.php';  
    use Minishlink\WebPush\WebPush; 



    $subscription = json_decode(file_get_contents('php://input'), true); 

    $auth = array(
    'VAPID' => array(
    'subject' => '`enter code here`', 
    'publicKey' => '**********', 
    'privateKey' => '***********', 
    ), 
); 

    $webPush = new WebPush($auth); 

    $res = $webPush->sendNotification(
    $subscription['endpoint'], 
    "Hello!", 
    $subscription['key'], 
    $subscription['token'], 
    true 
    ); 

Veuillez suggérer les étapes correctes.

+1

Qu'est-ce qui ne fonctionne pas? Avez-vous des erreurs? – Jerodev

+0

peut être https://gist.github.com/prime31/5675017 il est utile pour vous –

+0

Oui, il y a une erreur interne du serveur n il ne donne pas de notification. – Nisha

Répondre

0

J'ai passé un peu de temps à me comprendre. Je poste le code comme il fonctionne pour moi. Générez les clés à partir d'ici https://web-push-codelab.glitch.me/

<?php 

require_once './vendor/autoload.php'; 

use Minishlink\WebPush\WebPush; 


// array of notifications 
$notifications = array(
array(
     'endpoint' => 'https://fcm.googleapis.com/fcm/send/abcd........', // Chrome 
     'payload' => 'Hello', 
     'userPublicKey' => 'BFHh..........', 
     'userAuthToken' => 'DI............', 
    ) 
); 

$auth = array(
    'GCM' => 'AAAAKTK8bp4..............', // deprecated and optional, it's here only for compatibility reasons 
    'VAPID' => array(
     'subject' => 'Some Text', // can be a mailto: or your website address 
     'publicKey' => 'BGsm2vrV2AMpT.............', // (recommended) uncompressed public key P-256 encoded in Base64-URL 
     'privateKey' => 'a89H............', // (recommended) in fact the secret multiplier of the private key encoded in Base64-URL 

    ), 
); 

$defaultOptions = array(
    'TTL' => 300, // defaults to 4 weeks 
    'urgency' => 'normal', // protocol defaults to "normal" 
    'topic' => 'push', // not defined by default - collapse_key 
); 

$webPush = new WebPush($auth, $defaultOptions); 

$vr = $webPush->sendNotification(
    $notifications[0]['endpoint'], 
    $notifications[0]['payload'], // optional (defaults null) 
    $notifications[0]['userPublicKey'], // optional (defaults null) 
    $notifications[0]['userAuthToken'], // optional (defaults null) 
    true // optional (defaults false) 
);