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...)