繁体   English   中英

Twitter API-Ruby Twitter宝石

[英]Twitter API - Ruby Twitter Gem

如何访问Twitter API返回的Twitter :: Cursor哈希值?

我正在关注Jumpstartlab Microblogger教程,该教程通过jumpstart_auth gem使用Twitter gem

我在迭代4步骤1上。我可以使用以下代码返回一个friends对象:

def friends_last_tweets
  friends = client.friends
  puts friends
end

=>    Twitter::Cursor:0x00000104051928

但是,示例帐户“客户”在这种情况下有两个“朋友”而不仅仅是一个,那么为什么它只返回一个对象? 我以为该对象可能是其中所有朋友都在哈希值内的数组,因此使用[]进行访问,但这将返回“ Twitter :: Cursor的未定义方法”。 我在Twitter :: Cursor对象上运行each对象,它返回两个fixnums:

def friends_last_tweets
    friends = client.friends
    friends.each { |f| puts f }
end

=> 18908095
108528349

因此,可以肯定的是,这些数字必须代表我认为的Twitter :: Cursor对象中的每个“朋友对象”。 我需要访问该对象内的键/值对,但是尝试进行哈希访问会导致未定义的方法或变量。

如果与版本问题相关,我将使用Twitter5.11.0和Jumpstart_auth 0.6.0。

这些答案并没有帮助我获得最后一条消息(也许与此同时API发生了变化),这就是我最终做到的方式:

    def everyones_last_tweet
      puts "\n\n here are the latest tweets of your friends:"
      friends = @client.friends.collect { |f| @client.user(f) }
      friends.each do |friend|
        puts "\n\n#{friend.screen_name} wrote: \n\t #{friend.status.text}"
      end
    return ""
end

我对那个返回字符串不满意

以与本教程前面访问“关注者”对象相同的方式访问“朋友”对象,以获取关注者的屏幕名称列表。

要获取关注者的屏幕名称数组

screen_names = @client.followers.collect {|f| @client.user(f).screen_name }

要获得朋友的屏幕名称数组

screen_names = @client.friends.collect {|f| @client.user(f).screen_name }

要获取朋友的最后一条推文,可以使用上面发布的object_id,如下所示:

last_tweet = @client.user(object_id).status.tweet

我希望这有帮助。 我也被这个问题困扰了一段时间。

暂无
暂无

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

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