#!/usr/bin/env dotnet
#:package ClosureOSS.WebPush@2.5.3
using WebPush;
var vapidKeys = VapidHelper.GenerateVapidKeys();
vapidKeys.Subject = @"mailto:user@example.net";
// example keys
var p256dh = @"BIwCq8tz028CFq9YFQ56kipZ633EK628l4-u6FcPHTGkS_cqTsV-9MRRAGEu56UmfXQ-8lIg7QXgUTFmzedzMHM";
var auth = @"eSZCfw7d6bXE0erlgnLe_Q";
var webPushClient = new WebPushClient();
var subscription = new PushSubscription("https://server.example.com/notify/Avv3mSO...", p256dh, auth);
var options = new WebPushOptions
{
VapidDetails = vapidKeys,
Topic = "Example",
};
var message = webPushClient.GenerateRequestDetails(subscription, "A payload", options);
Console.WriteLine($"{message.Method} {message.RequestUri}");
Console.WriteLine();
foreach (var header in message.Headers){
foreach (var value in header.Value)
{
Console.WriteLine($"{header.Key} : {value}");
}
}
Console.WriteLine();
Console.WriteLine($"{Convert.ToBase64String(await message.Content!.ReadAsByteArrayAsync())}");