2016-07-12 4 views
0

私はプッシュ・ツー・ウェブ(クロム)をPHPで送信したいが、https://github.com/Minishlink/web-push libをこの作業に使用していますが、$userPublicKey$userAuthTokenを生成する方法はわかりません。このようなプッシュ・トゥ・クロムと暗号化ペイロード・データをPHPで送信

コード:

use Minishlink\WebPush\WebPush; 

$endpoint = 'https://android.googleapis.com/gcm/send/dwh8heIRnRI:APA91bH1nKZESimKK7Oh9ttQeoRovaS4drmCTQfkpvgtyQQKZZ1htwo4e-tKjMw_cS0ozINkXxXV8-jnYmK2__ZCZbrZUVrJxb931CahVUuat08DRqg4Z7yFpserazwCzCNBEcjb2jfb'; // Chrome 
$apiKeys = array(
    'GCM' => 'AIzacyDV2NtiuwLZGzDaC9bEeEeisS4BANjHw9s', 
); 

$webPush = new WebPush($apiKeys); 

$webPush->sendNotification(
    "https://android.googleapis.com/gcm/send/foV7YNoaKbk:APA91bETu6fPcDHsliBIaI3R0ejFqgIUwfMGFatia1563nTXVZTACaZw3tFaHW-z0Tu7YvZLJebxiYEapyzygO_5WvONVHHNDz7G9KPyPLxl-Il3h6QdgMVJhsmWs0ENVEcFt9HJKX0U", 
    "hey", // optional (defaults null) 
    "$userPublicKey", 
    "$userAuthToken" 
    true // optional (defaults false) 
); 

答えて

0

はギブこのようなクライアント側の$ userPublicKeyと$ userAuthToken:

第1のレジスタサービスワーカー:

if ('serviceWorker' in navigator) { 
    console.log('Service Worker is supported'); 
    navigator.serviceWorker.register('sw.js').then(function() { 
    return navigator.serviceWorker.ready; 
    }).then(function(serviceWorkerRegistration) { 
    reg = serviceWorkerRegistration; 
    subscribeButton.disabled = false; 
    console.log('Service Worker is ready :^)', reg); 
    }).catch(function(error) { 
    console.log('Service Worker Error :^(', error); 
    }); 
} 

ボタンをサブスクライブのイベントリスナーを追加:

subscribeButton.addEventListener('click', function() { 
    if (isSubscribed) { 
    unsubscribe(); 
    } else { 
    subscribe(); 
    } 
}); 

とget $ userPublicKeyと、このようなpushSubscription.getKeyで$ userAuthToken():

function subscribe() { 
    reg.pushManager.subscribe({userVisibleOnly: true}). 
    then(function(pushSubscription) { 
    sub = pushSubscription; 

    console.log(sub.getKey('auth')); 
     //userPublicKey 
     console.log(toBase64(sub.getKey('p256dh'))); 
     //userAuthToken 
     console.log(toBase64(sub.getKey('auth'))); 


    console.log('Subscribed! Endpoint:', sub.endpoint); 
    subscribeButton.textContent = 'Unsubscribe'; 
    isSubscribed = true; 
    }); 
} 
関連する問題