0

我能够将 twitter gem 集成到我的 rails 应用程序中,但有时它可以工作,而且大多数时候它会给出这个错误。这是我对这个奇怪错误的服务器响应(框架跟踪)的片段。

twitter (5.4.1) lib/twitter/rest/client.rb:143:in `rescue in request'
twitter (5.4.1) lib/twitter/rest/client.rb:131:in `request'
twitter (5.4.1) lib/twitter/rest/client.rb:97:in `get'
twitter (5.4.1) lib/twitter/search_results.rb:68:in `fetch_next_page'
twitter (5.4.1) lib/twitter/enumerable.rb:13:in `each'
actionpack (3.2.13) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
actionpack (3.2.13) lib/abstract_controller/base.rb:167:in `process_action'
actionpack (3.2.13) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (3.2.13) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
activesupport (3.2.13) lib/active_support/callbacks.rb:414:in             
`_run__1064161776__process_action__779617573__callbacks'
activesupport (3.2.13) lib/active_support/callbacks.rb:405:in `__run_callback'
activesupport (3.2.13) lib/active_support/callbacks.rb:385:in  
`_run_process_action_callbacks'
activesupport (3.2.13) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (3.2.13) lib/abstract_controller/callbacks.rb:17:in `process_action'
actionpack (3.2.13) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (3.2.13) lib/action_controller/metal/instrumentation.rb:30:in `block in  
process_action'   
activesupport (3.2.13) lib/active_support/notifications.rb:123:in `block in instrument'
activesupport (3.2.13) lib/active_support/notifications/instrumenter.rb:20:in 
`instrument'
activesupport (3.2.13) lib/active_support/notifications.rb:123:in `instrument'
actionpack (3.2.13) lib/action_controller/metal/instrumentation.rb:29:in   
`process_action'
actionpack (3.2.13) lib/action_controller/metal/params_wrapper.rb:207:in    
`process_action'
actionpack (3.2.13) lib/abstract_controller/base.rb:121:in `process'
actionpack (3.2.13) lib/abstract_controller/rendering.rb:45:in `process' 
actionpack (3.2.13) lib/action_controller/metal.rb:203:in `dispatch'
actionpack (3.2.13) lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
actionpack (3.2.13) lib/action_controller/metal.rb:246:in `block in action'
4

2 回答 2

0

正如 Alexbhandari 的评论中提到的,Twitter 的 API 受到限制

为了帮助 SO 社区正确诊断和修复错误,建议您提供一些有关错误是如何形成的上下文(IE 显示时,您尝试拉/推的数据,您的应用程序在何时执行错误显示)

为了帮助您一点,您可能会从中受益:


Twitter JS 小部件

我们在Twitter gem 上遇到了类似的问题

经过大量的挖掘,我们发现通过API调用数据是有限制的,而通过HTTP调用数据则不然。这就是他们可以自由分发 JS 小部件并让它们在数百万个 Web 属性上运行的方式

这意味着如果您想要不间断地显示推文等,您最好实现自己的 JS 小部件。您可以在我们的开发网站之一的底部看到一个示例:

//app/assets/javascripts/application.js
//Footer Twitter Feed (via extra/TwitterFetch)
$(document).ready(function(){
    twitterFetcher.fetch('385319530999738368', 'twitter_feed', 3, true, true, true, '', false, handleTweets, false);
    function handleTweets(tweets){
        var x = tweets.length;
        var n = 0;
        var element = document.getElementById('twitter_feed');
        var html = '<ul>';
        while(n < x) {
            html += '<li>' + tweets[n] + '</li>';
            n++;
        }
        html += '</ul>';
        element.innerHTML = html;
    };
});

这是TwitterFetcher JS 插件的实现,您必须将其包含在您的 JS 管道中

希望这可以帮助?

于 2013-12-31T09:13:34.497 回答
0

twitter.rb 已经存在于 twitter gem 中。尝试将您的 config/initializers/twitter.rb 更改为其他内容。

于 2014-08-22T11:41:59.903 回答