Sinatra AWS SNS Endpoint - требуется помощь - PullRequest
1 голос
/ 04 декабря 2010

Hiya,
Из-за недокументированной природы конечных точек 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"}

IЯ не уверен, как справиться с этим, кто-нибудь может помочь?

Большое спасибо за потраченное время,
Люк Карпентер

1 Ответ

2 голосов
/ 02 февраля 2011

Год и четыре месяца спустя, размышляя над этой проблемой:

Это было потому, что я был полным и полным новичком, и я не знал, что такое хэш в Ruby в то время

В вашем блоке post получите доступ к содержимому хэша следующим образом:

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

Сообщение, которое SNS отправит вам, будет распечатано на STDOUT / ваш терминал

...