<p>前三点:</p>
<ol>
<li><p>正如Paul指出的那样,Twitter对其API的许多部分表示反对。您应该检查一下是否使用了当前支持的机制。</p></li>
<li><p>官方的twitter python文档绝对是糟糕透顶的。上次我检查过,它们没有反映任何当前的库或连接协议。把它们当作最后的手段。</p></li>
<li><p>twitter推荐的python库都严重过时了。很多根本不起作用,大多数根本不起作用。</p></li>
</ol>
<p>我建议你把图书馆换成泰森。它是主动维护的,并支持当前的API。还有一些其他积极维护的twitter库。如果某个东西在2个月内被修补过-找另一个图书馆。在</p>
<p>看看你的密码:</p>
<ol>
<li><p>你的API对象没有传入任何凭据。IIRC,这在1.0 API中是允许的,但1.1 API不允许这样做-您现在必须使用API凭据进行身份验证:</p>
<ul>
<li><a href="https://dev.twitter.com/docs/api/1.1/get/statuses/user_timeline" rel="nofollow">https://dev.twitter.com/docs/api/1.1/get/statuses/user_timeline</a>(当前)</li>
<li><a href="https://dev.twitter.com/docs/api/1/get/statuses/user_timeline" rel="nofollow">https://dev.twitter.com/docs/api/1/get/statuses/user_timeline</a>(过去)</li>
</ul></li>
<li><p>您应该尝试检查该对象并找出创建404的URL。我猜它是1.0端点。您可能在本地使用更新版本的“twitter”包(不管是什么,该名称空间中有多个),但在服务器上使用的是另一个版本。你应该检查每台机器上的版本。</p></li>
<li><p>您的代码应该捕获HTTP错误。Twitter的API非常好,可以使用HTTP状态代码作为错误消息(<a href="https://dev.twitter.com/docs/error-codes-responses" rel="nofollow">https://dev.twitter.com/docs/error-codes-responses</a>)的一部分,并且还可以在消息头上发送信息。这通常可以告诉你到底发生了什么。像Twython这样的图书馆大部分都是为你做的。</p></li>
</ol>
<p>你所呈现的代码不可能导致这个错误,所以我不知道发生了什么。在</p>
<p>不传入凭据应生成400;错误凭据应生成401。速率限制是420429。阻塞可能是404或420。在</p>
<p>如果我不得不猜测-在本地,您有一个在1.1API端点之后的包,但是您的服务器有一个在1.0之后的包版本-它已经不存在了。在</p>