2017-06-07 9 views
0

私はPHPでプッシュ通知を送信したいと思いますが、どうすればよいか分かりません。PHPでプッシュ通知。それの使い方?

サービスワーカーを正常に作成しました。

このページのキーはhttps://web-push-codelab.appspot.com/です。しかし私はなぜ彼らが秘密鍵を与えるのか分からないのですか?

私はプッシュ通知をテストして、このページから通知を送信します。 しかし、PHPリクエストからプッシュ通知を送信したいと思います。 さらに、このコードはすべてのbowsersで可能ですが、このコードはgoogle chromeで動作します。私たちはこれをfirefox、safari、opéraで行うことができますか?

私はすでにlibrairie web-push-phpを使用しています。 (ここでのavaible:https://github.com/web-push-libs/web-push-php) 私はドキュメントからコードPASE /コピーして、私は私のキーをremplace、およびメッセージ: `

<?php 
    error_reporting(E_ALL); 
    ini_set('display_errors',1); 
    use Minishlink\WebPush\WebPush; 


    $notifications = array(
     array(
      'endpoint' => 'https://updates.push.services.mozilla.com/push/abc...', // Firefox 43+ 
      'payload' => 'hello !', 
      'userPublicKey' => '*****', // base 64 encoded, should be 88 chars 
      'userAuthToken' => '*****', // base 64 encoded, should be 24 chars 
     ), array(
      'endpoint' => 'https://android.googleapis.com/gcm/send/abcdef...', // Chrome 
      'payload' => '{msg:"je fais un test"}', 
      'userPublicKey' => '*****', 
      'userAuthToken' => null, 
     ) 
    ); 

    $webPush = new WebPush(); 

    // send multiple notifications with payload 
    foreach ($notifications as $notification) { 
     $webPush->sendNotification(
      $notification['endpoint'], 
      $notification['payload'], // optional (defaults null) 
      $notification['userPublicKey'], // optional (defaults null) 
      $notification['userAuthToken'] // optional (defaults null) 
     ); 
    } 
    $webPush->flush(); 

But this code don't work, the page return this : { "multicast_id":6971447349404987967、 "成功":0、"失敗":1、" canonical_ids ":0、" results ":[{" error ":" InvalidRegistration "}]}`

私もfirebaseアカウントを作成しますが、私はそれをどのように使用するのか分かりません。

また、通知をターゲットにしたいと思います。 「xxxがあなたの投稿にコメントしました」「xxxがあなたの投稿に好き」「xxxがあなたの友達のリクエストを送信しました」などの通知を送信したいと考えています。

+0

パブリック・フォーラムに公開鍵と認証トークンを公開しました。アカウントが侵害されたとみなし、すぐにそのトークンを取り消す必要があります。 –

+0

https://stackoverflow.com/questions/29705993/using-gcm-to-send-notifications-on-app-returns-invalidregistration-errorの可能な複製 –

答えて

1

このページのキーはhttps://web-push-codelab.appspot.com/です。しかし、 私はなぜ彼らは秘密鍵を与えるのか分からないのですか?

サーバは、公開鍵/秘密鍵ペアを生成することになっています。公開鍵は、ブラウザがサブスクリプションを作成するために使用します。秘密鍵はサーバー上に残り、プッシュメッセージの暗号化に使用されます。

また、通知を対象にしたいと思います。私はあなたがブラウザを持っている「あなたのポストにコメントXXX」や「xxxはあなたのポストを が好き」またはいくつかの時点で

「あなたに友達リクエストを送信XXX」のような通知が登録 を送りたいですpushManager.subscribe(ただし、このコードはあなたの質問にはありません)と呼んでください。これは、サブスクリプションに解決する約束を返します。このサブスクリプションは、現在認証されているユーザーに関連付ける必要があります。たとえば、AJAXを使用してサーバーにサブスクリプションを送信し、現在認証されているユーザーにそれを格納することができます。このユーザーに通知する場合はいつでも、このユーザーに関連付けられているサブスクリプションを使用できます。

https://web-push-book.gauntface.com/をご覧ください。