APIを使用すると、Amazonが届ける商品をリワードとしてユーザーに送ることができます。OSのアプリやウェブサイトを含む、さまざまなサービスに対応しています。APIの活用手順について、使用例を挙げながら説明します。APIは、アプリのクライアント側ではなく、サーバー側から呼び出す必要があります。APIを使用するための大まかな手順は、以下のとおりです。Momentsコンソールを使用してサービスを登録し、リワードを構成します。詳しくは、サービスを登録するを参照してください。キャンペーンがチャレンジの場合、getRewardInfoエンドポイントを呼び出して、対象ユーザーに通知するコンテンツを取得します。ルールエンジンを活用して、ユーザーがキャンペーンの対象条件を満たしているかどうかを判定する必要があります。ユーザーが条件を満たしている場合は、getRewardエンドポイントを呼び出してリワードを使い、リワード引き換え用URLをユーザーに送信します。以下のワークフローマップで、大まかなやり取りの流れを説明します。APIメソッドを呼び出すことは避け、必ずサーバー側のコードから呼び出すようにしてください。APIエンドポイントの詳細については、APIエンドポイントの仕様を参照してください。エンドポイントはOpenAPI形式で指定されます。用意された対話型APIエクスプローラーを使用すれば、APIのサンプル呼び出しを試すことが可能です。APIには、2つのエンドポイントがあります。getRewardInfoエンドポイントgetRewardエンドポイントどちらのエンドポイントも同じリクエストパラメーターを使用します。主な違いは、GetRewardエンドポイントがリワードを消費するのに対して、GetRewardInfoエンドポイントはリワードに関する情報を返すだけで、リワード自体は消費されません。APIは、ヘッダーで渡されるAPIキーを使用してリクエストを認可します。APIキー値をクライアントソフトウェアに埋め込むことは避けてください。リバースエンジニアリングされた場合に、財務上の損失につながる恐れがあります。登録するサービスごとに、API呼び出しに含める一意のAPIキーが用意されます。APIキーごとに、API呼び出しは1秒あたり5つまでというデフォルトの制限が設けられています(getRewardInfo呼び出しとgetReward呼び出しの任意の組み合わせが可能です)。APIキーからのトラフィックが1秒あたり5呼び出しを超える場合、超過分のAPI呼び出しに対してエラーレスポンスが送信され、フローが制限されます。APIスロットリング制限を処理するロジックの実装をお勧めします。API呼び出しが制限された場合、以下のような処理を行ってください。遅延が発生した後、API呼び出しを再試行する。再試行の回数を制限する。遅延を設定せず、再試行の回数を制限しない場合、再試行リクエストの回数が原因でスロットリング制限に悪影響が生じる可能性があります。APIのリクエストごとに10秒間のタイムアウトが設定されています。Momentsから常にレスポンス(成功レスポンス、エラーレスポンス、またはタイムアウト)を得られるように、サーバーの実装では必ずより長いタイムアウトを設定するようにしてください。Momentsより先にサーバーがタイムアウトすると、getReward呼び出しの成功レスポンスが得られない可能性があります。このような場合、Momentsからリワードの請求があっても、アプリ側でそのリワードを認識することができないため、ユーザーへの提供もできません。上記のAPIスロットリング制限で説明したロジックと同様のロジックを使用して、APIタイムアウトから回復するためのコードの実装をお勧めします。各種言語でのAPIリクエスト言語ごとのエンドポイント呼び出し方法を、以下のタブで説明します。APIを呼び出す場合は、その言語のAPIリクエスト形式を特定する必要があります。エラーメッセージMomentsサービスがAPIリクエストを正常に完了できない場合、rewardNotificationTextフィールドには、発生したエラーに関するテキストメッセージが含まれます。これらのエラー応答では、HTTPステータスコード200が使用されます。エラーメッセージの種類は以下のとおりです。%s)."(キャンペーンは実施されていません。APIについて調べる際は、以下に用意したテストアカウントと構成を使用してください(エンドポイントを呼び出すときは、これらのパラメーターのほとんどをリクエスト本文で使用します)。このデモでは、アプリ(DEMO1)に対して1つのキャンペーン(DEMOCAMP1)が定義されています。キャンペーンの構成では、Androidのデバイスタイプに対して1つのモーメント(MomentsReward)が定義されています。このモーメントでは1つのリワードグループを使用でき、そのグループに5つのリワードが設定されているため、このキャンペーンにおけるリワードの総数は5になります。MOMENTS(この値はエンドポイントリクエストでは使用されません。MomentsRewardテストと開発の最中に、テストアカウントのリワードをすべて使用した場合は、同じAPIキーでGETリクエストをhttps://at0xry1l42.execute-api.us-east-1.amazonaws.com/prodに送信すると、リワードを元の5つにリセットすることができます。次のようにcURLを使用してターミナル経由での送信が可能です。"https://at0xry1l42.execute-api.us-east-1.amazonaws.com/prod/"このレスポンスはnullですが、リワードはリセットされます。無断複写·転載を禁じます。