Amazon PA-API統合のテスト方法
このドキュメントでは、Amazon PA-API統合機能をテストする方法を説明します。
テスト方法の種類
1. ローカルテスト(API認証情報なし)
基本的なロジックをテストできます。API認証情報は不要です。
# テストスクリプトを実行
cd /home/runner/work/peipeipe.net/peipeipe.net
python3 scripts/test_amazon_enhancement.py
このテストでは以下を確認します:
- ✓ ASIN抽出ロジック
- ✓ リンク検出ロジック
- ✓ HTMLエスケープ(セキュリティ)
- ✓ マークダウンファイルの検出
2. ローカルテスト(API認証情報あり)
実際にAmazon PA-APIを呼び出してテストします。
準備
- Amazon PA-API認証情報を取得:
- https://affiliate.amazon.co.jp/assoc_credentials/home
- 環境変数を設定:
export AMAZON_ACCESS_KEY="your-access-key"
export AMAZON_SECRET_KEY="your-secret-key"
export AMAZON_PARTNER_TAG="peipeipe-22"
テスト実行
# 依存関係をインストール
pip install -r requirements.txt
# スクリプトを実行(実際に_posts内のファイルを処理)
python3 scripts/enhance_amazon_links.py
注意: このコマンドは実際にファイルを変更します!
ドライラン(ファイルを変更しない)
テスト用に小さなサンプルファイルで試すことをお勧めします:
# テスト用マークダウンファイルを作成
cat > /tmp/test_post.md << 'EOF'
---
layout: post
title: "テスト記事"
date: 2024-02-08 12:00:00 +0900
---
# テスト
[テスト商品](https://www.amazon.co.jp/dp/B084MCR9KG)
EOF
# テスト用ディレクトリを作成
mkdir -p /tmp/test_posts
cp /tmp/test_post.md /tmp/test_posts/
# スクリプトを修正してテストディレクトリを指定
# (または、enhance_amazon_links.py の posts_dir を一時的に変更)
3. GitHub Actionsでテスト
実際の運用環境でテストします。
ステップ1: GitHub Secretsを設定
- GitHubリポジトリの Settings → Secrets and variables → Actions
- 以下のシークレットを追加:
AMAZON_ACCESS_KEY: PA-API アクセスキーAMAZON_SECRET_KEY: PA-API シークレットキーAMAZON_PARTNER_TAG: アフィリエイトタグ(例:peipeipe-22)
ステップ2: ワークフローを手動実行
- GitHub リポジトリの「Actions」タブを開く
- 左サイドバーから「Enhance Amazon Affiliate Links」を選択
- 「Run workflow」ボタンをクリック
- ブランチを選択(例:main)
- 「Run workflow」を実行
ステップ3: 実行結果を確認
- ワークフローの実行ログを確認
- 処理されたファイルの数を確認
- エラーがないか確認
- コミットされた変更を確認
テスト時の確認ポイント
✓ 正常に処理される例
以下のようなシンプルなリンクは処理されます:
[商品名](https://www.amazon.co.jp/dp/B084MCR9KG)
[別の商品](http://www.amazon.co.jp/exec/obidos/ASIN/4062737388/peipeipe-22/ref=nosim/)
✓ スキップされる例
以下のような既存の複雑なウィジェットはスキップされます:
<div class="krb-amzlt-box">
<!-- カエレバなどのウィジェット -->
</div>
✓ 出力フォーマット
処理後は以下のような形式に変換されます:
<div class="amazon-product-card" style="...">
<div class="amazon-product-image">
<a href="..."><img src="商品画像URL" alt="商品タイトル"></a>
</div>
<div class="amazon-product-info">
<h3><a href="...">商品タイトル</a></h3>
<div class="amazon-product-link">
<a href="...">Amazon.co.jpで詳細を見る</a>
</div>
</div>
</div>
トラブルシューティング
エラー: “AMAZON_ACCESS_KEY and AMAZON_SECRET_KEY environment variables must be set”
原因: API認証情報が設定されていません
解決策:
- ローカル: 環境変数を設定
- GitHub Actions: リポジトリのSecretsを設定
エラー: “Error fetching product info for ASIN”
原因:
- ASINが無効
- 商品が利用できない
- APIレート制限に達した
解決策:
- ASINが正しいか確認
- 少し時間を置いてから再実行
- APIクォータを確認
変更されないファイルがある
原因:
- 既に複雑なウィジェットが含まれている
- シンプルなAmazonリンクが見つからない
解決策:
- これは正常な動作です
- スクリプトは既存の複雑なウィジェットを保護します
ベストプラクティス
- 小規模なテストから始める
- まず1-2個のファイルでテスト
- 結果を確認してから全体に適用
- バックアップを取る
- Gitで管理されているので、問題があれば元に戻せます
- 重要な変更前はブランチを作成
- レート制限に注意
- Amazon PA-APIには1秒あたりのリクエスト制限があります
- 大量のファイルを一度に処理しない
- 定期的な実行
- 新しい記事を追加したときに自動実行されます
- 手動で実行することも可能です
追加情報
詳細な設定方法は docs/AMAZON_PAAPI_INTEGRATION.md を参照してください。
