4

所以我有一些代码:

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

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

谢谢!

4

4 回答 4

5

你不能使用JSON.generate方法Tweet.attrs吗?

于 2013-04-04T07:43:00.267 回答
2

这主要取决于您要在数据库中填充的所有列。这里的文档提到了关于您可以从中获取的所有元素的非常好的信息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。

让我知道我是否理解错误。

于 2013-04-04T07:43:25.787 回答
2

对于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

于 2014-11-02T15:30:35.610 回答
0

也许这在以前是不存在的。

只需调用.to_jsonøn 推文对象:

client = Twitter::REST::Client.new(config)
client.status(27558893223).to_json
于 2020-03-16T09:05:57.267 回答