【问题标题】:401 error using the Streaming features of Twitter API (through Tweepy)使用 Twitter API 的 Streaming 功能时出现 401 错误(通过 Tweepy)
【发布时间】:2017-02-07 02:13:24
【问题描述】:

我有一个应用程序,它利用了 Twitter API 的许多功能。我已经在一个 Windows 7 系统上测试了该应用程序,并且所有功能都运行良好。

在第二个 Windows 7 系统上测试应用程序,似乎除了公共流和用户流功能之外的所有功能都在工作(即应用程序设法进行身份验证,可以关注/取消关注用户等)。在此系统上,Stream 功能会生成 401 error。据我了解,401 可能表示授权错误(在这种情况下不会发生,因为非流媒体功能可用),或 Twitter 的服务器和客户端系统之间的a difference in time configuration

我希望我的应用程序的流媒体功能可以跨平台(Windows、Mac、Unix)使用,我不能指望最终用户修改他们系统的时钟配置。在由时间配置问题引起的情况下,任何人都可以推荐一个与系统无关的 Tweepy/python 解决方案来解决 401 错误问题吗?谢谢。

编辑:

在 Stream 功能不起作用的系统上,在手动修改系统时钟后,没有成功,我与 time.windows.com 同步。这对显示的时间没有任何明显的影响(我没有查看秒数),但它解决了问题(即 Twitter 用户和公共流功能可用)。问题仍然存在 - 如何防止最终用户系统出现此类错误?警告用户调整时钟对我来说是不现实的。

【问题讨论】:

  • 你确定不是认证错误?刚刚离开 API 文档 Streaming With Tweepy: API authorization is required to access Twitter streams.
  • @downshift 如果是身份验证错误,我不相信我能够使用所有非流媒体功能,因为流媒体和非流媒体功能使用同一组证书。此外,它也无法解释为什么程序可以在一台机器上运行,而不能在另一台机器上运行。
  • 我相信您对身份验证要求是正确的,您比我使用api有更好的理解和经验。然而,该程序可以在一个系统上运行,该系统为凭据设置了环境变量,而另一台计算机上没有设置,这就是我问的原因,但很公平,你已经纠正了我。

标签: python twitter tweepy


【解决方案1】:

您的系统时钟可能延迟了 5 分钟以上。

【讨论】:

  • 奇怪的是,它不工作的 Windows 7 机器上的时钟显示的时间基本上与它工作的 Win 7 机器上的时间相同(可能相差几秒钟)。但问题与针对时钟问题实施基于多系统 tweepy/python 的解决方案有关。对此有何建议?
  • 您最多可以同时使用相同的凭据打开 3 个流。当第一个实例停止时,您能否让第二个实例工作?
  • 原来是时钟问题,手动调整时钟不成功后,与微软时间服务器同步修复。但问题是,如何在不要求他们调整时钟的情况下防止这个问题在最终用户的系统中出现?
  • 这就是 NTP 服务器的用途。用户不必再手动调整时钟。他们可以将系统时钟指向互联网时间服务器。给用户像this这样的指令。
  • 谢谢,Jonas - 我想探索一些选项,这些选项不会让用户不必调整系统时钟或使用任何系统设置(即可能需要 Twitter API 的功能)用户系统的时间可以由程序提供,并提供从 NTP 服务器获得的时间)。如果事实证明唯一的选择是强制用户调整/同步系统时钟,我会这样做,但我认为这应该是最后的手段。
猜你喜欢
  • 2015-04-09
  • 2015-01-05
  • 2016-06-30
  • 1970-01-01
  • 2012-07-19
  • 2013-07-10
  • 2012-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多