Php 如何使用Laravel 5.1中的AWS SNS将推送通知从web发送到iOS和android设备?

Php 如何使用Laravel 5.1中的AWS SNS将推送通知从web发送到iOS和android设备?,php,amazon-web-services,laravel-5.1,Php,Amazon Web Services,Laravel 5.1,我写过这样的代码 $sns = App::make('aws')->createClient('sns'); $data = json_encode([ 'APNS' => ['apns' => [ 'alert' => $message ] ] ]); Log::info($data); $sns->publish(array(

我写过这样的代码

$sns = App::make('aws')->createClient('sns');

    $data = json_encode([
        'APNS' => ['apns' => [
                'alert' => $message
            ]
        ]
    ]);

    Log::info($data);

    $sns->publish(array(
        'Message' => $data,
        'TargetArn' => "arn:aws:sns:us-west-2:360542326270:endpoint/APNS_SANDBOX/Testtest/20a75cd1-da25-3331-8126-4db497cbdd5e"
    ));
  <Type>Sender</Type>                                                                                                                                                                 
  <Code>InvalidPara (truncated...)                                                                                                                                                    
  <Type>Sender</Type>                                                                             
  <Code>InvalidPara (truncated...) 
我得到的错误如下:

[Aws\Sns\Exception\SnsException]                                                                                                                                                        
  <Type>Sender</Type>                                                                                                                                                                 
  <Code>InvalidPara (truncated...)                                                                                                                                                    
  <Type>Sender</Type>                                                                             
  <Code>InvalidPara (truncated...) 
在“”上执行“发布”时出错;AWS HTTP错误:客户端错误:
POSThttps://sns.us-east-1.amazonaws.com
导致
400错误请求
响应:

  <Type>Sender</Type>                                                                                                                                                                 
  <Code>InvalidPara (truncated...)                                                                                                                                                    
  <Type>Sender</Type>                                                                             
  <Code>InvalidPara (truncated...) 
InvalidParameter(客户端):无效参数:targetran原因:未找到指定目标arn的端点-

  <Type>Sender</Type>                                                                                                                                                                 
  <Code>InvalidPara (truncated...)                                                                                                                                                    
  <Type>Sender</Type>                                                                                                                                                                 
  <Code>InvalidParameter</Code>                                                                                                                                                       
  <Message>Invalid parameter: TargetArn Reason: No endpoint found for the target arn specified</Message>                                                                              

<RequestId>18937e90-5453-5e30-bf89-315a59c3f2af</RequestId>                                                                                                                           
  <Type>Sender</Type>                                                                             
  <Code>InvalidPara (truncated...) 

  <Type>Sender</Type>                                                                                                                                                                 
  <Code>InvalidPara (truncated...)                                                                                                                                                    
  <Type>Sender</Type>                                                                             
  <Code>InvalidPara (truncated...) 
[http\Exception\ClientException]
客户端错误:
POSThttps://sns.us-east-1.amazonaws.com
导致
400错误请求
响应:

  <Type>Sender</Type>                                                                                                                                                                 
  <Code>InvalidPara (truncated...)                                                                                                                                                    
  <Type>Sender</Type>                                                                             
  <Code>InvalidPara (truncated...) 
有人能帮我找到解决办法吗?提前感谢。

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

  <Type>Sender</Type>                                                                                                                                                                 
  <Code>InvalidPara (truncated...)                                                                                                                                                    
  <Type>Sender</Type>                                                                             
  <Code>InvalidPara (truncated...) 
这篇文章是这样说的:

  <Type>Sender</Type>                                                                                                                                                                 
  <Code>InvalidPara (truncated...)                                                                                                                                                    
  <Type>Sender</Type>                                                                             
  <Code>InvalidPara (truncated...) 
snsClient.setRegion(Region.getRegion(Regions.US_WEST_2));

您可能需要将其转换为您正在使用的特定于PHP laravel的客户端。

我已通过以下链接在config/AWS.PHP文件中使用我的AWS帐户密钥和密码更新了配置文件
  <Type>Sender</Type>                                                                                                                                                                 
  <Code>InvalidPara (truncated...)                                                                                                                                                    
  <Type>Sender</Type>                                                                             
  <Code>InvalidPara (truncated...) 
https://github.com/aws/aws-sdk-php-laravel
。通过这一点,它开始发挥作用。以前,我在.env文件中进行了更新。现在,它工作得很好

  <Type>Sender</Type>                                                                                                                                                                 
  <Code>InvalidPara (truncated...)                                                                                                                                                    
  <Type>Sender</Type>                                                                             
  <Code>InvalidPara (truncated...)