ブラウザ拡張機能を作る際に利用している外部サービス
Sentry - エラー収集
言わずとしれたエラー収集サービス。アラートを Slack に流してる。
💡エラーに個人情報が混じってる場合は適切にマスクした上で送信すること。
無料プランだと Slack 連携が使えないので
Sentry の Webhook
→ Vercel に立てているリクエスト中継アプリ
→ Slack の Incoming Webhook
みたいな感じで Sentry の Webhook を Slack までリレーしている。
Vercel のリクエスト変換アプリのコードはこんな感じ。↓
const { IncomingWebhook } = require("@slack/webhook");
export async function POST(request) {
const params = await request.json();
const webhook = new IncomingWebhook(
"YOUR SLACK INCOMING WEBHOOK URL",
{
icon_url: "YOUR ICON URL",
channel: "YOUR SLACK CHANNEL",
username: "Sentry",
}
);
await webhook.send(
`${params.event.title}\n${params.url}\n( by ${params.project} )`
);
return new Response("OK");
}
リクエスト変換アプリはVercel でなくても、Google Cloud でも AWS でも何でも良いと思う。
canny.io - バグ報告/機能要望
バグレポートや機能要望をユーザーが投稿できる SaaS 。
以前までは Github Issues を使っていたが、言わずもがな Github アカウントが必要でユーザーにとって敷居が高かったので、Google などのアカウントでログインできるこちらのサービスに変えた。
ExtensionPay - 決済
決済機能をまるっと請け負ってくれるサービス。(正確にはまだ使っておらず、近々使う予定。)
これを使えば、サーバーを自前で持たなくても、クライアント JS のコードだけで有料機能(買い切り/サブスクどちらでも)の実装ができる。
ExtensionPay の内部では Stripe で決済を実行しているので、Stripe のアカウントが必要となる。(審査を通すために Web サイトなどをこしらえるのが割とだるい)
ただ、問題なのは競合サービスが存在しないことで、もし ExtensionPay がサ終した場合、決済のサーバーサイドを自前で用意しなければならないことになる。。サ終に怯えながら使ってる。
どうしたもんかなー。(昔は Google 公式が、拡張機能の決済システムを提供してくれていたらしいのだが、だいぶ昔に廃止されてしまった。復活してくれないかなー。無いか。。)
Discussion