【发布时间】:2015-12-16 00:10:15
【问题描述】:
我想为我在我的 ruby on rails 应用程序中使用 twitter gem 发布的推文获取 twitter 分析。有没有可能实现这一目标?我想在我的应用程序上显示推文印象,如果有任何可能的方法,请告诉我。
【问题讨论】:
标签: ruby-on-rails-4 twitter twitter-gem
我想为我在我的 ruby on rails 应用程序中使用 twitter gem 发布的推文获取 twitter 分析。有没有可能实现这一目标?我想在我的应用程序上显示推文印象,如果有任何可能的方法,请告诉我。
【问题讨论】:
标签: ruby-on-rails-4 twitter twitter-gem
您可以提取整个帐户的参与度数据。在每条推文的基础上,您可以提取收藏夹计数和转发计数。这是后者的一个例子:
首先像这样定义你的客户:
client = Twitter::REST::Client.new do |config|
config.consumer_key = Devise.omniauth_configs[:twitter].strategy.consumer_key
config.consumer_secret = Devise.omniauth_configs[:twitter].strategy.consumer_secret
config.access_token = self.identities.find_by(provider: :twitter).token
config.access_token_secret = self.identities.find_by(provider: :twitter).token_secret
end
现在定义您想要从中提取数据的 API 端点以及您想要获取数据的推文 ID 数组:
path = "1.1/statuses/lookup.json"
ids = ['1234567890','56324931407']
现在调用 API 并对响应执行一些操作:
response = Twitter::REST::Request.new(client, 'get', path, {id: ids, map: true}).perform
返回的结果将是 JSON 哈希,其中键是帖子 ID。在选项哈希中调用 map: true 会告诉 API 包含带有 null 值的丢失的帖子键,而不是从响应中排除它们。您可以在 Twitter::REST::Request 类的文档中阅读更多内容。
请注意,使用 Twitter::REST::Request 类,您可以从 API 中指定任何 path 和/或 method。
如果您想为您的帐户计算参与度数据,则必须提取大量推文(例如 100 条),然后自己解析响应并计算比率,因为 Twitter 不通过API 以预先打包的方式。 This Quora post 更详细地介绍了如何自己计算参与率。
至于提取展示数据,目前无法通过公共 API 实现。 See this discussion for more details.
【讨论】: