Amazon web services AWS SNS在laravel-4上的实现

Amazon web services AWS SNS在laravel-4上的实现,amazon-web-services,amazon-sns,Amazon Web Services,Amazon Sns,我正在我的项目中实现AWS SNS,我正在尝试使用AWS SNS服务向Android和iOS设备发送推送通知,但我没有得到一步一步实现的适当文档 我的代码如下 $aws = Aws::factory(array( 'profile' => 'my_profile', 'region' => 'us-east-1', 'key' => Config::get('app.aws_access_

我正在我的项目中实现AWS SNS,我正在尝试使用AWS SNS服务向Android和iOS设备发送推送通知,但我没有得到一步一步实现的适当文档

我的代码如下

     $aws = Aws::factory(array(
            'profile' => 'my_profile',
            'region'  => 'us-east-1',
            'key'   =>  Config::get('app.aws_access_key'),
            'secret'    =>Config::get('app.aws_secret_access_key')
        ));

   $this->sns = $aws->get('Sns');

   $task = $this->sns->publish(
            array(
                'TargetArn' => 'arn:aws:sns:us-east-1:341707006110:My-topic',
                'Message' => 'Hello from PHP',
                'Subject' => 'Hello world!'
            ));
我得到以下错误:

用户:arn:aws:iam::341707006110:用户/我的主题无权执行


我有一个设备令牌,如APA91BGUABXANTXETDPR9XFZE8LENJTB3V,我想在此设备上发送推送通知。我如何将设备令牌传递给发布方法?

基本上,这个问题是因为您的主题/目标arn是针对us-west-2的。但默认情况下,您的SNS客户端指向us-east-1。您需要在snsClient上调用setRegion


请在更新区域后重试。

您的IAM角色似乎没有SNS权限。尝试添加它们,然后尝试此操作。
在AWS web控制台中转到IAM->Roles->选择您的角色->附加策略->使用关键字sns过滤,并附加适当的策略。

您能给出完整的错误堆栈吗?