我正在尝试利用snS服务使用http协议订阅主题。
以下是我在服务器上放置的一段php代码:-
<?php
require 'vendor/autoload.php';
require 'Aws/sns/Message.php';
require 'Aws/sns/MessageValidator.php';
require 'GuzzleHttp/Client.php';
use Aws\sns\Message;
use Aws\sns\MessageValidator;
use GuzzleHttp\Client;
// Make sure the request is POST
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
file_put_contents("notification.txt","Error 405\n",FILE_APPEND);
http_response_code(405);
die;
}
try {
$message = Message::fromRawPostData();
file_put_contents("notification.txt","\r\n-------\r\n",FILE_APPEND);
file_put_contents("notification.txt",$_REQUEST,FILE_APPEND);
$validator = new MessageValidator();
$validator->validate($message);
} catch (Exception $e) {
// Pretend we're not here if the message is invalid.
file_put_contents("notification.txt",'snS Message Validation Error: ' . $e->getMessage() . "\n".$e->getTraceAsString()."\n",FILE_APPEND);
echo($e);
http_response_code(404);
die();
}
/*
if ($message->get('Type') === 'Subscriptionconfirmation') {
// Send a request to the SubscribeURL to complete subscription
(new Client)->get($message->get('SubscribeURL'))->send();
file_put_contents("notification.txt","Subscription\n",FILE_APPEND);
} elseif ($message->get('Type') === 'Notification') {
ob_start();
var_dump($message);
$result = ob_get_clean();
file_put_contents("notification.txt",$result,FILE_APPEND);
}
*/
当我尝试通过从AWS Portal调用“确认订阅”来接收呼叫时,但没有包含订阅URL的标头或正文。 谁能帮助我遵循正确的方向?