aws php sns,PHP中的AWS SNS HTTP订阅确认

我无法在PHP中获得AWS SNS Http连接的确认.我的应用程序是在Laravel 5.1上开发的

在AWS中,我创建了一个主题并添加了订阅.我已选择端点作为HTTP并提供URL http://myurl.com/sns.

我的PHP代码如下

public function getSnsMessage()

{

$message = Message::fromRawPostData();

$validator = new MessageValidator();

// Validate the message and log errors if invalid.

try {

$validator->validate($message);

}catch (InvalidSnsMessageException $e) {

// Pretend we're not here if the message is invalid.

http_response_code(404);

error_log('SNS Message Validation Error: ' . $e->getMessage());

die();

}

// Check the type of the message and handle the subscription.

if ($message['Type'] === 'SubscriptionConfirmation') {

// Confirm the subscription by sending a GET request to the SubscribeURL

file_get_contents(public_path() . '/awssns.txt','SUB URL MESSAGE = '.$message['SubscribeURL'].PHP_EOL, FILE_APPEND );

}

}

我的路径文件条目是:

Route::get('/sns', [

'as' => 'sns',

'uses' => 'SnsEndpointController@getSnsMessage',

]);

在浏览器中,当我调用URL – http://myurl.com/sns时,我收到以下错误.

RuntimeException in Message.php line 35:SNS message type header not provided.

1. in Message.php line 35

2. at Message::fromRawPostData() in SnsEndpointController.php line 26

3. at SnsEndpointController->getSnsMessage(object(Request))

4. at call_user_func_array(array(object(SnsEndpointController),

'getSnsMessage'), array(object(Request))) in Controller.php line 256

我的作曲家中有以下内容:

"aws/aws-sdk-php-laravel": "^3.1",

"aws/aws-php-sns-message-validator": "^1.2"

有关如何解决此错误并获得我的订阅确认的任何帮助?

解决方法:

转到“VerifyCsrfToken”文件.

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;

class VerifyCsrfToken extends BaseVerifier

{

/**

* The URIs that should be excluded from CSRF verification.

*

* @var array

*/

protected $except = [

'sns' // your call back URL

];

}

转到您的路线文件

为您的方法添加一个发布路径

Route::post('sns', 'SnsEndpointController@getSnsMessage')->name('snsendpointcontroller.getsnsmessage');

编辑你的方法

public function getSnsMessage()

{

//All Of your code here

error_log($message['SubscribeURL']); // To check your are receiving URL

}

您将能够在错误日志或out文件中看到订阅URL

标签:php,amazon-web-services,laravel-5-1,amazon-sns,aws-php-sdk

来源: https://codeday.me/bug/20190701/1349526.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值