Koala gem を使用して Facebook フィードの Hash オブジェクトを受信していますが、問題が発生しています。
返される Hash オブジェクトは次のとおりです。
{"post_id"=>"19292868552_356643851019175", "message"=>"Tune in tomorrow, January 11 at 12 PM PST / 3 PM EST / 8 PM GMT to join Facebook Live from the Consumer Electronics Show. We will be discussing some of the best social applications and gadgets with people who built them. Watch the video and share your questions on Facebook Live - facebook.com/facebooklive.", "attachment"=>{"media"=>[{"href"=>"http://facebook.com/facebooklive", "alt"=>"", "type"=>"link", "src"=>"http://external.ak.fbcdn.net/safe_image.php?d=AQCkZ2fRUjE2ofi5&w=90&h=90&url=http%3A%2F%2Fprofile.ak.fbcdn.net%2Fhprofile-ak-snc4%2F195784_150984694912422_7311456_n.jpg"}], "name"=>"Facebook Live", "href"=>"http://facebook.com/facebooklive", "caption"=>"www.facebook.com", "description"=>"Facebook Live is Facebook’s official live video streaming channel, provide a deeper look into our...", "properties"=>[], "icon"=>"http://static.ak.fbcdn.net/rsrc.php/v1/yD/r/aS8ecmYRys0.gif", "fb_object_type"=>""}}
ここで、次のように Hash オブジェクトのリンクにアクセスしようとすると:
<hash-object>["attachment]["media"][0]["href"]
次のエラーが表示されます。
未定義のメソッド
[]' for nil:NilClass
次の観察結果でエラーをデバッグしようとしました。
<hash-object>["attachment]["media"][0].class # Hash (still it says undefined method[] for NilClass)
また、コマンドラインで実行してもエラーは発生しません。この問題は意味をなさないので混乱しています(つまり、Sinatraではなくコマンドラインで作業しています)。
私が試したこと:
JSON.parse(<hash-object>.to_json) # to re-create the Hash Object
そして、次の前にエラーなしでオブジェクトをフェッチできます。
post["attachment"]["media"][0] # it returns the output as it should be
前もって感謝します。