如何从Twitter Gem Twitter Object返回Tweet的完整JSON

时间:2013-04-04 05:17:59

标签: ruby json mongodb twitter

所以我有一些代码:

#twitter api access config up here
Twitter.status(27558893223)

我知道我从Twitter.status线获得了所有的推文信息。我想要的不是Ruby对象。我想要那条推文的完整JSON,所以我可以直接使用它来填充我的mongodb实例。我可以获得一些关于如何将该推文对象转换为JSON的帮助吗?

谢谢!

4 个答案:

答案 0 :(得分:4)

您无法在Tweet.attrs上使用JSON.generate方法吗?

答案 1 :(得分:2)

对于班级 Twitter ::推文的一个对象,请使用 .attrs

  

Twitter.status(27558893223).attrs

对于对象数组,请使用 .map(&:attrs)

  

Twitter.user_timeline(“[某人的推特名称]”)。地图(&:attrs)

这是一个简单的Sinatra应用程序,可以返回Katy Perry的推文:)

require 'rubygems'
require 'sinatra'
require 'sinatra/jsonp'
require 'twitter'

class TwitterFetcher < Sinatra::Base helpers Sinatra::Jsonp

@@twitter_client = Twitter::REST::Client.new do |config| config.consumer_key = ENV['consumer_key'] config.consumer_secret = #ENV['consumer_secret'] # config.bearer_token = ENV['bearer_token'] config.access_token = # ENV['access_token'] config.access_token_secret = #ENV['access_token_secret'] end

get '/' do result = @@twitter_client.user_timeline("katyperry") jsonp result.map(&:attrs) end end

答案 2 :(得分:1)

它主要取决于您希望在数据库中填充的所有列。文档here提到了有关您可以从Twitter::Tweet获取的所有元素的非常好的信息。

例如,您可以执行下面提到的操作,并将其相应地存储到您的数据库实例中。

Twitter.status(27558893223).source
Twitter.status(27558893223).from_user
Twitter.status(27558893223).from_user_id 
Twitter.status(27558893223).lang

或者您可以执行Twitter.status(27558893223).attrs并相应地处理JSON。

如果我理解错误的话,请告诉我。

答案 3 :(得分:0)

也许以前不存在。

只需在tweet对象中调用.to_json

client = Twitter::REST::Client.new(config)
client.status(27558893223).to_json