🗄️ データベース管理者ログイン
管理画面に入る際にログインした管理者アカウントで、銘柄の追加・編集・削除が全員に反映されるデータベースに保存されます。
未ログイン
🔴 楽天(すぐに使える)
⏱️ 表示を一瞬にする(30日ごとの自動更新)
以前は詳細ページを開くたびに楽天APIへ問い合わせていたため表示に時間がかかっていました。
今はSupabaseの sake テーブルにキャッシュ列を持たせ、Cloudflare WorkerのCron Triggerが
1日1回バックグラウンドで「30日以上前 or 未取得」の銘柄だけをまとめて更新するようにしています。
一覧・詳細ページはそのキャッシュ列を読むだけなので表示は一瞬です。
1. SupabaseのSQL Editorで以下を実行し、sake テーブルにキャッシュ列を追加
alter table sake
add column if not exists cached_image text,
add column if not exists cached_price text,
add column if not exists cached_url text,
add column if not exists cached_updated_at timestamptz;
2. 上の「楽天用Workerコードを見る/コピー」を再度コピーし、既存の楽天Workerを更新(またはデプロイ)
3. Cloudflareダッシュボードの Worker → Settings → Variables に、以下を追加
・SUPABASE_URL(下のSupabase接続設定と同じ値)
・SUPABASE_SERVICE_ROLE_KEY(Supabaseの Project Settings → API → service_role キー。★anonキーではなくservice_roleキー。絶対にクライアント側コードには書かない)
・RAKUTEN_APP_ID / RAKUTEN_ACCESS_KEY / RAKUTEN_AFFILIATE_ID(上の楽天アプリID等と同じ値)
4. Cloudflareダッシュボードの Worker → Settings → Triggers → Cron Triggers で
「Add Cron Trigger」から毎日1回(例: 0 3 * * *=毎日AM3時)を追加
5. 以降、全銘柄が自動的に30日ごとに更新され、ページ表示自体はSupabaseのキャッシュを読むだけになります
🔌 Amazon画像・価格の自動取得(PA-API)をつなぐ手順
1. Amazonアソシエイト・プログラムに登録し、直近180日で3件以上の紹介実績を作る(PA-API利用申請の条件)
2. 審査後、Product Advertising API の利用申請を行い、アクセスキー・シークレットキーを発行
3. 下の「Workerコード」をコピーし、Cloudflare Workers(無料枠で可)に新規Workerとしてデプロイ
4. Worker の環境変数(Settings → Variables)に AMAZON_ACCESS_KEY / AMAZON_SECRET_KEY / AMAZON_PARTNER_TAG を設定
5. デプロイ後に発行される Worker のURLを、上の「PA-API連携Worker URL」欄に貼って保存
6. 以降、詳細ページを開くたびに商品画像・現在価格が自動取得されます(取得できない場合は自作アイコンのまま表示)