【问题标题】:how can I capture response from twitter.com? ( ruby + twitter gem)如何捕获来自 twitter.com 的响应? (红宝石+推特宝石)
【发布时间】:2011-02-10 09:48:26
【问题描述】:

如何获取来自 twitter.com 的响应?确保一切顺利?

我正在使用 ruby​​ 和 ruby twitter gem,我的代码基本上是这样的

oauth = Twitter::OAuth.new('consumer token', 'consumer secret')
oauth.authorize_from_access('access token', 'access secret')

client = Twitter::Base.new(oauth)
client.update('Heeeyyyyoooo from Twitter Gem!')

【问题讨论】:

  • 有什么方法可以模拟更新不顺利的文字吗?

标签: ruby twitter


【解决方案1】:

更新 twitter api 方法将发回一个响应,让您知道一切是否正常。它可以以 json 或 xml 响应,我确定 twitter gem 使用其中一个作为默认值。您需要将返回值保存到一个变量并对其进行解析,如果您在那里有一个状态 ID,那么它就可以工作。尝试使用令牌或秘密来检查出错时会发生什么。我建议将您的最后一行更改为此

ret = client.update('Heeeyyyyoooo from Twitter Gem!')

然后在下面添加这一行来检查你得到了什么

puts ret.inspect

logger.info ret.inspect

或您选择的记录方法

[编辑] 看起来 twitter gem 隐藏了 twitter api 的实际响应,为您解析它并返回相关位。在更新方法的情况下,它只会返回您新推文的 id。你可以这样查看id

puts ret.id

如果您使用另一个库连接到 twitter api 并且需要解析 xml 或 json 响应,那么这个答案的其余部分可能就是您要寻找的。 [/编辑]

如果您没有使用为您解析 twitter api 响应的 gem,那么您将需要使用一些东西来将 twitter api 的响应解析为您可以使用的数据。有很多方法可以做到这一点,具体取决于您要解析的格式(json 或 xml)

我的喜好:

这里有更多关于 twitter api 更新方法返回的信息:http://apiwiki.twitter.com/Twitter-REST-API-Method:-statuses%C2%A0update

【讨论】:

  • @imightbeinatree:很好的答案!。 if you have a status id in there then it worked 基本上是我想知道的。我在 ret 变量中有类似"id"=>12555654648, 的东西,我想这就是我要找的东西。因此,如果 id 存在并且不为空,那么一切都很好,对吗?
  • 其实 twitter gem 还是不错的。如果我使用ret = client.update('Heeeyyyyoooo from Twitter Gem!'),那么我可以使用puts ret.id。很棒不是吗。 @imightbeinatree 您可以在答案中添加吗?
  • 如果您从 twitter gem 获得的返回只是 "id" => 1223123 那么 gem 在某种程度上隐藏了来自您的 twitter api 的真实响应,为您解析它并返回给您相关位。我将在上面编辑我的答案,以便说明。
  • 嗨,twitter api hides 是什么意思...我认为它除了解析之外没有隐藏任何内容。因此,我只能使用 twitter gem,而不是使用 Hpricot 进行解析。我的看法
  • 我应该使用一个技术上更正确的术语。这就是我所说的隐藏 twitter gem 不会向您显示来自 twitter api 的完整响应的意思,它会解析它并仅将相关部分返回给您。您不需要 hpricot 来解析响应,因为 twitter gem 正在为您进行解析。我会稍微修改一下我的答案以确保清楚。
【解决方案2】:

这对我有用...

begin   
  resp = Twitter.update(params[:message])
rescue Exception => e
  # e.message contains the twitter response      
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多