1

您好,
由于 Amazon SNS 终端节点的无证性质以及它们与用户的交互方式,我正在努力在 Sinatra 中为我的应用程序编写一个终端节点。我在这里有一些用 PHP 编写的代码,但我正在努力将其转换为 Ruby 数组,因为request.env["rack.input"].read将所有内容封装成类似于 PHP 数组的东西:

{"Message"=>"chapstick", "Subject"=>"cherry", "Signature"=>"QutYUXuqWQqiAY4PUvd+Hq+9KWSvPVwck22oV0pXkgSg0p+kZ/2Q+pS24siDPKxxHB8+ru5q6  QBqQv+RHKWobiLiupEf4UP1MQu3lnP4Z2TYWvbHVjNiO5OutcaivPrn08EIBTOMsWl2i8JmaTBXozOp4r1vheqg6k/wWDoUmd0=", "TopicArn"=>"arn:aws:sns:us-east-1:687180262489:plinklebird", "SignatureVersion"=>"1", "Timestamp"=>"2010-12-03T22:10:01.141Z", "MessageId"=>"dc8a8502-44a8-41ec-9616-1d049f00724d", "UnsubscribeURL"=>"https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:687180262489:plinklebird:99e83fd5-58a9-41bb-82bd-9920a1ee1a94", "Type"=>"Notification"}

我不知道如何处理这个,有人可以帮忙吗?

非常感谢您抽出宝贵的时间,
卢克·卡彭特

4

1 回答 1

2

一年零四个月后,反思这个问题:

那是因为我是个十足的菜鸟,当时我不知道 Ruby 中的 Hash 是什么

在您的post块中,访问哈希的内容,如下所示:

post "/" do
  puts params['Message']
  halt 200
end 

SNS 发送给您的消息将被打印到 STDOUT/您的终端

于 2011-02-02T20:57:51.263 回答