AWS

eBayのPlatform Notificationsって使えない?

Platform Notificationsの概要

eBayのPlatform Notifications(プラットフォーム通知)は、eBayサイト上で発生するさまざまなイベントをリアルタイムで開発者に提供する機能です。この機能を活用することで、アプリケーションがeBayサイトの変更を迅速に把握し、不要なAPIコールを減らすことができます。

概要

・Platform Notificationsは、eBayサイト上のイベント(出品終了や取引成立など)によってトリガーされるSOAPメッセージです。
・アプリケーションは通知設定を行うことで、特定のイベントに対する通知を受け取ることができます。
・通知をサブスクライブすることで、APIコールの回数を減らすことができます。

Platform Notifications(公式サイト)

通知機能を活用したシステム開発の試み

この通知機能を利用して、例えば商品が売れた際に購入者へ「ご購入ありがとうございます!」というメッセージを自動送信するシステムの開発を試みました。

通知を受信したことをトリガーにシステムを稼働させることで、能動的にAPIを呼び出して注文状況をチェックする必要がなくなり、コストの低いシステムを構築できると考えたからです。

システム構成

1.eBayのプラットフォーム通知の送信先としてAWS API Gatewayを設定
2.API GatewayをトリガーとしてAWS Lambdaを起動
3.LambdaがeBayのメッセージ機能を通じて購入者に自動メッセージを送信

このアプローチにより、リアルタイムの通知を活用し、迅速な顧客対応を実現することを目指しました。

実際に運用して直面した問題点

しかし、実際にシステムを運用してみると、予想外の問題が発生しました。

① 二重通知の発生
同じ通知が2~3分後、または数時間後に再度送信されることがありました。
この問題を防ぐため、システム側で二重通知をチェックする機能を追加実装する必要がありました。

② 誤った通知の受信
商品が実際に売れていないにもかかわらず、販売通知が届くことがありました。
この影響で、システムが誤作動し、不適切なタイミングでメッセージを送信する可能性がありました。

API Gatewayのログを確認したところ、すべての通知に対して正常に200ステータスコードを返していることが判明。
つまり、これらの問題はeBay側の通知システムに起因するものであり、システムの実装に問題があったわけではありませんでした。

結論と対応策

これらの問題により、Platform Notificationsは当初期待していたようには機能せず、実用に耐えないと判断しました。

最終的な対応策

・Platform Notificationsの使用を中止
GetOrderなどのAPIを使用し、能動的に注文状況をチェックする方式へ変更

この経験から、新しい機能やAPIを導入する際は、十分なテストと検証が不可欠であることを学びました。また、バックアッププランや代替手段を事前に考慮する重要性も再認識しました。

eBayの開発者コミュニティでは、このような問題の改善策や解決方法が議論されている可能性があります。今後のアップデートに期待しつつ、現時点では信頼性の高い代替手段を採用することが賢明だと考えます。