嗨,我正在使用Laravel 4设置来利用AWS SNS向我的iOS设备发送推送消息,从AWS控制台向我的设备发布命令运行良好。
然后我尝试了PHP:
$sns = AWS::get('sns');
$sns->publish(array(
'Message' => 'Hello from PHP',
'TargetArn' => "arn:aws:sns:us-west-2:360542326270:endpoint/APNS_SANDBOX/Testtest/20a75cd1-da25-3331-8126-4db497cbdd5e"
));
我得到
Guzzle ' Service ' Exception ' ValidationException Validation errors: [TopicArn] is a required string: The topic you want to publish to.
但文档特别指出,我可以使用publish发送到主题ARN,也可以使用直接寻址直接发送到单个设备。
看来AWS PHP SDK迫使我无论如何都要使用TopicArn。
http://aws.typepad.com/aws/2013/08/push-notifications-to-mobile-devices-using-amazon-sns.html?utm_source=feedburner&utm_medium=馈送&utm_campaign=订阅源%3A+AmazonWebServicesBlog+(Amazon+Web+Services+Blog)
我做错了什么?
我刚刚从composer中删除了明确的guzzle行。然后运行更新,它删除了guzzle3.6并安装了3.9。然后,它删除了AWS-PHP-SDK 2.3.4并安装了开发主
然后我试了一下,结果成功了。
不确定问题出在哪里,但不同的软件包版本无法协同工作。。。