Twitter 回复:"error 32: Could not authenticate you" 来自 Heroku,但不是桌面版

twitter response: "error 32: Could not authenticate you" from Heroku, but not desktop

我正在按照 Carin Meier How I Start post 的说明进行操作,但在从 Heroku post 到 Twitter(就像她的例子)时遇到了问题。请注意,我的应用程序没有 Web 组件,只有一个工作组件。

在我的桌面上进行测试,我可以 post 到 Twitter 和 gist.github.com。

但是,在 Heroku 上,我总是 Exception in thread "main" java.lang.Exception: Twitter responded to request with error 32: Could not authenticate you. 能够 post 到 gist.github.com,所以它看起来是一个仅限 Twitter 问题。

我已经使用 heroku run lein repl 来确认我的信誉看起来还不错:

(reset! my-twitter-creds   (tw-oauth/make-oauth-creds
                              (env :app-consumer-key)
                              (env :app-consumer-secret)
                              (env :user-access-token)
                              (env :user-access-secret)))

但呼叫:

(tw/statuses-user-timeline :oauth-creds @my-twitter-creds
                           :params {:count 1 :screen-name "myname"})

总是报错32。

我为此创建的所有代码都可以在这里浏览:https://github.com/rogerallen/tweegeemee/blob/master/src/tweegeemee/core.clj

我目前怀疑 Heroku 对 Twitter Oauth 回调有一些要求 URL。但是,由于我的应用程序没有网络工作者,我不想添加这个(post 中没有提到)。

谁能帮我解决这个问题?

根据您的描述,如果您可以 post 在本地使用环境变量使用 lein 运行 进行 Twitter - 那么唯一的区别应该是 heroku 使用的环境变量。

也许可以检查 heroku config 或者甚至在 heroku 日志中添加更多的 watch 日志,看看它用什么调用它。