使用 Twitter API 时 Heroku 出错

Posted

技术标签:

【中文标题】使用 Twitter API 时 Heroku 出错【英文标题】:Error on Heroku when using Twitter API 【发布时间】:2016-02-15 18:06:37 【问题描述】:

我对编程很陌生。我制作了一个简单的 Rails 应用程序,用户可以在其中搜索 Twitter 帐户,然后查看最近的推文列表。现在,在本地一切正常,但在 Heroku 上,我搜索 Twitter 用户名后出现错误。它说:“我们很抱歉,但出了点问题。如果您是应用程序所有者,请查看日志以获取更多信息。”

我可能做错了什么?我为 Rails 使用了twitter gem,以便与 Twitter API 交互。

UPDATE:原来的日志没有显示任何错误,但是当我添加LOG_LEVEL=DEBUG时,我发现:

2015-11-14T20:46:12.807764+00:00 heroku[api]: Set LOG_LEVEL config vars by me@gmail.com
2015-11-14T20:46:12.807798+00:00 heroku[api]: Release v7 created by me@gmail.com
2015-11-14T20:46:12.920647+00:00 heroku[web.1]: State changed from up to starting
2015-11-14T20:46:14.836990+00:00 heroku[web.1]: Starting process with command `bin/rails server -p 46021 -e production`
2015-11-14T20:46:18.072236+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2015-11-14T20:46:18.419708+00:00 app[web.1]: DEPRECATION WARNING: The configuration option `config.serve_static_assets` has been renamed to `config.serve_static_files` to clarify its role (it merely enables serving everything in the `public` folder and is unrelated to the asset pipeline). The `serve_static_assets` alias will be removed in Rails 5.0. Please migrate your configuration files accordingly. (called from block in <top (required)> at /app/config/environments/production.rb:23)
2015-11-14T20:46:19.246517+00:00 app[web.1]: [2015-11-14 20:46:19] INFO  WEBrick 1.3.1
2015-11-14T20:46:19.246524+00:00 app[web.1]: [2015-11-14 20:46:19] INFO  ruby 2.0.0 (2015-04-13) [x86_64-linux]
2015-11-14T20:46:19.246525+00:00 app[web.1]: [2015-11-14 20:46:19] INFO  WEBrick::HTTPServer#start: pid=3 port=46021
2015-11-14T20:46:19.509393+00:00 app[web.1]: [2015-11-14 20:46:19] FATAL SignalException: SIGTERM
2015-11-14T20:46:19.509398+00:00 app[web.1]:  /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:170:in `select'
2015-11-14T20:46:19.509399+00:00 app[web.1]:  /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:170:in `block in start'
2015-11-14T20:46:19.509400+00:00 app[web.1]:  /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:32:in `start'
2015-11-14T20:46:19.509400+00:00 app[web.1]:  /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:160:in `start'
2015-11-14T20:46:19.509401+00:00 app[web.1]:  /app/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/handler/webrick.rb:34:in `run'
2015-11-14T20:46:19.509402+00:00 app[web.1]:  /app/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/server.rb:286:in `start'
2015-11-14T20:46:19.509402+00:00 app[web.1]:  /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.4/lib/rails/commands/server.rb:80:in `start'
2015-11-14T20:46:19.509403+00:00 app[web.1]:  /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:80:in `block in server'
2015-11-14T20:46:19.509404+00:00 app[web.1]:  /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:75:in `tap'
2015-11-14T20:46:19.509405+00:00 app[web.1]:  /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:75:in `server'
2015-11-14T20:46:19.509406+00:00 app[web.1]:  /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.4/lib/rails/commands.rb:17:in `<top (required)>'
2015-11-14T20:46:19.509405+00:00 app[web.1]:  /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
2015-11-14T20:46:19.509407+00:00 app[web.1]:  bin/rails:8:in `require'
2015-11-14T20:46:19.509407+00:00 app[web.1]:  bin/rails:8:in `<main>'
2015-11-14T20:46:19.509411+00:00 app[web.1]: [2015-11-14 20:46:19] INFO  going to shutdown ...
2015-11-14T20:46:19.509438+00:00 app[web.1]: [2015-11-14 20:46:19] INFO  WEBrick::HTTPServer#start done.
2015-11-14T20:46:19.533083+00:00 app[web.1]: => Booting WEBrick
2015-11-14T20:46:19.533087+00:00 app[web.1]: => Run `rails server -h` for more startup options
2015-11-14T20:46:19.533087+00:00 app[web.1]: => Rails 4.2.4 application starting in production on http://0.0.0.0:24418
2015-11-14T20:46:19.533088+00:00 app[web.1]: => Ctrl-C to shutdown server
2015-11-14T20:46:19.533089+00:00 app[web.1]: Exiting
2015-11-14T20:46:19.609214+00:00 heroku[web.1]: State changed from starting to up
2015-11-14T20:46:20.250573+00:00 heroku[web.1]: Process exited with status 143
2015-11-14T20:52:25.726153+00:00 heroku[router]: at=info method=GET path="/" host=appname.herokuapp.com request_id=839d65f2-9bb6-4c1d-908b-fad69f817a6f fwd="123.45.67.890" dyno=web.1 connect=0ms service=114ms status=200 bytes=1642
2015-11-14T20:52:25.952648+00:00 heroku[router]: at=info method=GET path="/assets/application-4aac4725986aee7cd976eac8d3be0ab3.js" host=appname.herokuapp.com request_id=cbced639-bba6-40d5-993a-332e54cfe320 fwd="123.45.67.890" dyno=web.1 connect=0ms service=90ms status=404 bytes=1829
2015-11-14T20:52:25.907640+00:00 heroku[router]: at=info method=GET path="/assets/application-018564ef5c99ab59c0936b1891ba38e6.css" host=appname.herokuapp.com request_id=bc40e739-0627-4bf4-aa51-11454137e3d9 fwd="123.45.67.890" dyno=web.1 connect=0ms service=68ms status=404 bytes=1829
2015-11-14T20:52:31.106562+00:00 heroku[router]: at=info method=GET path="/search?utf8=%E2%9C%93&q=news&commit=Search" host=appname.herokuapp.com request_id=87845fc0-db85-47df-b918-61bc7114cb52 fwd="123.45.67.890" dyno=web.1 connect=0ms service=197ms status=500 bytes=1754

现在有一些状态 404 和 500 错误。这些可能是什么原因造成的?

提前致谢!

【问题讨论】:

哪里出错了?此日志没有任何错误。 感谢您的回复。我刚刚用 Heroku 的完整日志更新了我的问题。不幸的是,由于某种原因,我也没有看到错误。 您会很高兴知道这似乎不是应用程序错误。再次重启你的 Heroku “盒子” 谢谢。我试过heroku restart,但还是有错误。然后我检索了扩展的 Heroku 日志,看到了几个 404 和一个 500。我更新了我的问题。你认为这些是什么来的? 从 2021 年 6 月起,twitter 对在各种云托管平台(包括 heroku)上使用 twitter api 运行自动化有一些限制。 【参考方案1】:

解决方案是我需要将我的 Twitter API 凭据添加到 Heroku。

heroku config:add TWITTER_CONSUMER_KEY=<<Your twitter consumer key>>
heroku config:add TWITTER_CONSUMER_SECRET=<<Your twitter consumer secret>>

来源:

https://devcenter.heroku.com/articles/config-vars https://github.com/mortardata/twitter-gardenhose/blob/master/README.md

【讨论】:

以上是关于使用 Twitter API 时 Heroku 出错的主要内容,如果未能解决你的问题,请参考以下文章

使用omniauth-twitter的Ruby on Rails应用程序在heroku上不起作用“很抱歉,出了点问题。”

使用 Django App 在 Heroku 上获取 Twitter 流

HTTPS时,React截取/ auth / twitter /。我想从我的节点服务器访问/ auth / twitter /而不是反应应用程序

Twitter 登录工作正常,但不断抛出错误,要求提供 API 密钥

通过 API 上传文件时 Heroku 前端超时

Heroku 应用程序在使用 Spotify API 令牌时遇到问题