17

私のコントローラーには、次のコードがあります...

response = HTTParty.get('https://graph.facebook.com/zuck')
logger.debug(response.body.id)

NoMethodError / 未定義のメソッド「id」が発生しています

私が行った場合...

logger.debug(response.body)

必要に応じて出力します...

{"id":"4","name":"Mark Zuckerberg","first_name":"Mark","last_name":"Zuckerberg","link":"http:\/\/www.facebook.com\/zuck","username":"zuck","gender":"male","locale":"en_US"}

response.body.idだと思うかもしれませんが、明らかにそれは機能していません。前もって感謝します!

4

4 に答える 4

8

response['id']レスポンスContent-Typeapplication/jsonまたはresponse.parse_responseJSON ペイロードから生成されたハッシュを取得する場合に使用できます。

response = HTTParty.get('https://graph.facebook.com/zuck')

payload = response.parsed_response

logger.debug(payload['id'])

注:parsed_responseはハッシュです。応答Content-Typeがの場合のみapplication/json、そうでない場合HTTPartyは文字列として返します。ハッシュを強制するために、応答が返されない場合は、パラメーターとしてapplication/jsonを渡すことができます。formatHTTParty.get(url, format: :json)

于 2015-08-18T17:43:03.877 に答える