2017-07-24 51 views
-1

我想創建一個網頁推送通知在PHP中,但我沒有確切的程序。以下是我找到的代碼,但它不起作用。PHP:創建網頁推送通知

<?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 
    ); 

請建議正確的步驟。

+1

什麼不起作用?你有什麼錯誤嗎? – Jerodev

+0

可能是https://gist.github.com/prime31/5675017它對你有幫助 –

+0

是的,它有一些內部服務器錯誤ñ它沒有通知。 – Nisha

回答

0

我花了一些時間,我自己搞清楚了這一點。我發佈了代碼,因爲它適用於我。從這裏生成密鑰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) 
);