【发布时间】:2013-03-26 01:05:27
【问题描述】:
所以我有一些代码:
#twitter api access config up here
Twitter.status(27558893223)
我知道我从该 Twitter.status 行中获得了所有推文信息。我想要的不是 Ruby 对象。我想要那条推文的完整 JSON,所以我可以直接使用它来填充我的 mongodb 实例。我可以就如何将该推文对象仅转换为 JSON 获得一些帮助吗?
谢谢!
【问题讨论】:
所以我有一些代码:
#twitter api access config up here
Twitter.status(27558893223)
我知道我从该 Twitter.status 行中获得了所有推文信息。我想要的不是 Ruby 对象。我想要那条推文的完整 JSON,所以我可以直接使用它来填充我的 mongodb 实例。我可以就如何将该推文对象仅转换为 JSON 获得一些帮助吗?
谢谢!
【问题讨论】:
你不能在Tweet.attrs上使用JSON.generate方法吗?
【讨论】:
这主要取决于您要在数据库中填充的所有列。文档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。
如果我理解错了问题,请告诉我。
【讨论】:
对于 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'
类 TwitterFetcher
@@twitter_client = Twitter::REST::Client.new 做 |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'] 结束
得到'/'做 结果 = @@twitter_client.user_timeline("katyperry") jsonp 结果.map(&:attrs) 结尾 结尾
【讨论】:
也许这以前不存在。
只需在推文对象上调用.to_jsonøn:
client = Twitter::REST::Client.new(config)
client.status(27558893223).to_json
【讨论】: