問題の説明
Simple Message Queue (旧称:MNS) で PHP スクリプトを HttpEndpoint として使用すると、メッセージ本文を受信できません。
原因
この問題は、PHP スクリプトが HTTP ボディの取得に $_POST[] メソッドを使用していることが原因です。$_POST[] メソッドが受け入れるのは、以下のコンテンツタイプでフォームから送信されたデータのみです。
application/x-www-form-urlencoded
ただし、MNS プッシュリクエストは、以下の 3 つのコンテンツタイプのみをサポートします。
text/xml;charset=utf-8
text/plain;charset=utf-8
application/json;charset=utf-8
解決策
PHP コードを確認し、$_POST[] メソッドを使用して HTTP ボディを取得している場合は、次のようにコードを変更します。
file_get_contents("php://input");説明
このメソッドを使用すると、生の POST データを読み取ることができます。このメソッドは、さまざまなコンテンツタイプの POST データに対応しています。また、コンテンツタイプが指定されていない場合に生データを取得する際にも使用できます。