webpushのLaravelを使用しないパターンを箇条書き、フロントエンド側は

2024.11.14

Logging

おはようございます.webpushのLaravelを使用しないパターンを箇条書き、フロントエンドは過去記事を参照ください.まずwebpushを使用するにはパブリックキーとシークレットキーが必要になります.下記のURLより発行してみてください.

https://web-push-codelab.glitch.me

フロントエンド側でサービスワーカーの登録された識別データをバックエンドに送信.

// db.php: データベース接続の設定
function getDbConnection() {
    $host = 'localhost';
    $dbname = 'your_database';
    $username = 'your_username';
    $password = 'your_password';

    try {
        $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        return $pdo;
    } catch (PDOException $e) {
        die("DB接続エラー: " . $e->getMessage());
    }
}

// endpoint_register.php: エンドポイントをデータベースに登録
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $endpoint = $_POST['endpoint'];
    $auth = $_POST['auth'];
    $p256dh = $_POST['p256dh'];

    if ($endpoint && $auth && $p256dh) {
        $pdo = getDbConnection();
        $stmt = $pdo->prepare("INSERT INTO push_subscriptions (endpoint, auth, p256dh) VALUES (?, ?, ?)");
        $stmt->execute([$endpoint, $auth, $p256dh]);
        echo "登録成功";
    } else {
        echo "エンドポイントデータが不完全です";
    }
}

バックエンド側で下記のようなコードでデータを保存します.

次にminishlink/web-pushというライブラリを使用し登録されたデータを元に送信処理を行います.

composer require minishlink/web-push
// message_send.php: データベースからエンドポイントを取得し、プッシュ通知を送信
require 'db.php';
require 'vendor/autoload.php';

use Minishlink\WebPush\WebPush;
use Minishlink\WebPush\Subscription;

// VAPIDキーの設定
$auth = [
    'VAPID' => [
        'subject' => 'https://example.com',
        'publicKey' => 'YOUR_PUBLIC_VAPID_KEY',
        'privateKey' => 'YOUR_PRIVATE_VAPID_KEY',
    ],
];

$webPush = new WebPush($auth);

// データベースからサブスクリプション情報を取得
$pdo = getDbConnection();
$stmt = $pdo->query("SELECT endpoint, auth, p256dh FROM push_subscriptions");
$subscriptions = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($subscriptions as $sub) {
    $subscription = Subscription::create([
        'endpoint' => $sub['endpoint'],
        'publicKey' => $sub['p256dh'],
        'authToken' => $sub['auth'],
    ]);

    // 送信するメッセージ
    $message = json_encode(['title' => '通知タイトル', 'body' => 'メッセージ内容']);

    // プッシュ通知の送信
    $webPush->sendOneNotification($subscription, $message);
}

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

```, エンドポイント, キー, コード, サービスワーカー, サブスクリプション情報, シークレットキー, データベース, データベース接続, パターン, バックエンド, バックエンド側, パブリックキー, プッシュ通知, フロントエンド, フロントエンド側, ライブラリ, 接続エラー, 識別データ,

Photo by Pixabay on Pexels.com

そこに便利な機能があっても使わない。

2023.10.05

Logging

おはようございます、そこに便利な機能があっても使わないと落合陽一さんがボヤいていました。スマホが浸透するのに10年ぐらいかかりました。恐らく生成AIも同じぐらい浸透するのに時間がかかるじゃないだろうかなって思います。

【前編】「GINZA CROSSING Talk ~時代の開拓者たち~(ゲスト:落合陽一さん)」 2023年9月7日放送

そこの頃のエンジニアは生成AIが書いたコードを修正したり加工する仕事が殆んど担っているかも知れません。10年後、人が一からコードを書くことがなくなりコードを書けるひとは、尊敬されるかも知れません。

生成AIが世に広がってそれほど時間が経過していませんが、生成AIを使う人ってあまりいないじゃないかなって思います。率先して使用しているのはIT界隈かなって思っていて他の業界で使用している話を聞かない。ITリテラシーが高い人ととの格差は広がる一方だと感じます。

10年後、どこまで生成AIでコードを書ける様になるのかは未知数ですが、今の段階ではデザイナーさんが描いたデザインをコード化することは可能になっています。なのでHTMLはもう人が一からコードを書かなくて良い時代です。これからは生成AIが書いたHTMLを手直しするという作業になるでしょう。

フロントエンドエンジニアのお仕事の一つがなくなると思っています。10年後にフロントエンドエンジニアと同様なことがバックエンドでも起こりうる時代になっていると。プログラマーは生成AIが書いたコードを見て、これは残す残さないを判断したりコード修正が主な仕事になると思います、また、その頃にはIT人材はそれほど要らなくなり中小企業などは無く成り大企業とスモールカンパニーや個人事業が主になると思います。アイディア次第で大企業に負けないアプリが作れるようになっていると思います。また、アプリも今以上に増えていくようになるでしょうね。

その頃には村の人しか使わないようなスモールアプリみたいな物が増えていくだろうと。ともあれ生成AIが浸透するのには10年はかかるだろうなぁって。

明日へつづく😂

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

html, ITリテラシー, IT人材, IT界隈, アイディア次第, エンジニア, スモールアプリ, スモールカンパニー, バックエンド, ひと, プログラマー, フロントエンドエンジニア, ボヤ, 一方, 未知数, , 格差, 段階, 生成AI, 落合陽一さん,

Laravel入門書は2日で半分進む。#phpcode

2022.12.24

Logging

おはようございます、今日はクリスマス・イブですね🎄。

Laravel入門書は2日で半分進みました、この記事がUPされている頃にはLaravel入門書は読了している頃だと思います。自分が持っているLaravel入門書はLaravel5.4対応なので正直な所、最新の入門書に切り替えた方が良いかも知れませんが、金銭的に苦しいので働きだしてから購入するべきか考えたいと思います。

入門書を隅から隅まで読んでも、使い倒せるそうにないのがちょっと不満ですね。この入門書は前半分はフロントエンドの人のために書かれているような気がします。なので、バックエンドエンジニアだけを担当するという方は、後半分から読んでいっても良いじゃないかなと思います。

中小企業で開発している人はフロントだけとかバックエンドだけとか考えずに、両方のことを行えるようにしといたら良いかもです。人手不足になったらフロントも手伝ってとなることが有るからです。

そういうことなので、全部理解するに越したことはないですね_(:3」∠)_。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

Laravel5.4対応, Laravel入門書, イブ, クリスマス, バックエンド, バックエンドエンジニア, フロント, フロントエンド, 両方, 中小企業, 人手不足, 入門書, 全部, 前半分, 半分, 後半分, , 最新, , ,