所以我有一些代码:
#twitter api access config up here
Twitter.status(27558893223)
我知道我从该 Twitter.status 行中获得了所有推文信息。我想要的不是 Ruby 对象。我想要那条推文的完整 JSON,所以我可以直接使用它来填充我的 mongodb 实例。我可以就如何将该推文对象转换为 JSON 获得一些帮助吗?
谢谢!
你不能使用JSON.generate方法Tweet.attrs
吗?
这主要取决于您要在数据库中填充的所有列。这里的文档提到了关于您可以从中获取的所有元素的非常好的信息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。
让我知道我是否理解错误。
对于Twitter::Tweet类的一个对象,使用.attrs
Twitter.status(27558893223).attrs
对于对象数组,请使用.map(&:attrs)
Twitter.user_timeline("[某人的推特名称]").map(&: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
也许这在以前是不存在的。
只需调用.to_json
øn 推文对象:
client = Twitter::REST::Client.new(config)
client.status(27558893223).to_json