繁体   English   中英

如何解析用户对象以返回屏幕名称并继续下一步?

[英]How can i parse a user object to return a screen name and move on to my next step?

我正在使用code-cademy,而且我正在学习rubygem中的twittr api的第2步(我认为它被称为)...我做了第1步很容易。 这是第二课的内容......

来自verify_credentials.json端点的响应包含用于成功请求的身份验证用户的JSON编码表示。 现在,您将解析API响应并打印出当前用户的屏幕名称。

添加代码以将HTTP响应解码为Ruby对象。 去做这个:

说明(这些是他们的指示)

为json包添加依赖项(哪个json包?)访问HTTP响应主体(我该怎么做?)解码JSON编码的响应确保将解析后的响应分配给用户变量!

(我甚至看过他们给我的提示......这里是下面的)

暗示

可以通过在源文件的顶部添加require''来添加依赖项。 (我应该添加什么包?)

响应变量将具有名为body的属性,该属性包含HTTP响应的文本。

您可以调用JSON.parse来解码JSON编码的字符串。 此方法返回已解码的对象。

我尝试了我认为正确的代码,但结果是不正确的。 为了让我的课程取得成功,我需要输入什么? 以下是他们给我的代码:

require 'rubygems'
require 'oauth'

# Parse a response from the API and return a user object.
def parse_user_response(response)
  user = nil

  # Check for a successful request
  if response.code == '200'
    # Parse the response body, which is in JSON format.
    # ADD CODE TO PARSE THE RESPONSE BODY HERE
    user = 

    # Pretty-print the user object to see what data is available.
    puts "Hello, #{user["screen_name"]}!"
  else
    # There was an error issuing the request.
    puts "Expected a response of 200 but got #{response.code} instead"
  end

  user
end

# All requests will be sent to this server.
baseurl = "https://api.twitter.com"

# Verify credentials returns the current user in the body of the response.
address = URI("#{baseurl}/1.1/account/verify_credentials.json")

# Set up HTTP.
http             = Net::HTTP.new address.host, address.port
http.use_ssl     = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER

# If you entered your credentials in the previous
# exercise, no need to enter them again here. The
# ||= operator will only assign these values if
# they are not already set.
consumer_key ||= OAuth::Consumer.new "ENTER IN EXERCISE 1", ""
access_token ||= OAuth::Token.new "ENTER IN EXERCISE 1", ""

# Issue the request.
request = Net::HTTP::Get.new address.request_uri
request.oauth! http, consumer_key, access_token
http.start
response = http.request(request)
user = parse_user_response(response)

请尽可能帮助。 感谢您的时间和考虑。 :)

你需要在代码的开头[require'json']。

您的用户名将在response.body中编码,但您需要在其上调用JSON.parse才能正确解码。

所以你必须回答#ADD CODE to PARSE THE RESPONSE BODY HERE:user = JSON.parse(response.body)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM