获取我最新tweet的Python脚本停止在我的s上运行

2024-09-30 08:32:01 发布

您现在位置:Python中文网/ 问答频道 /正文

考虑以下代码:

import twitter
api = twitter.Api()
most_recent_status = api.GetUserTimeline('nemesisdesign')[0].text

在我的服务器上(内梅斯设计.net)几天前停止工作了。在

如果我从我自己的机器上尝试同样的代码,它会很好地工作。在

这是堆栈跟踪:

^{pr2}$

有什么提示吗?我不知道。。。:-(


Tags: 代码textimport服务器机器apimostnet
2条回答

前三点:

  1. 正如Paul指出的那样,Twitter对其API的许多部分表示反对。您应该检查一下是否使用了当前支持的机制。

  2. 官方的twitter python文档绝对是糟糕透顶的。上次我检查过,它们没有反映任何当前的库或连接协议。把它们当作最后的手段。

  3. twitter推荐的python库都严重过时了。很多根本不起作用,大多数根本不起作用。

我建议你把图书馆换成泰森。它是主动维护的,并支持当前的API。还有一些其他积极维护的twitter库。如果某个东西在2个月内被修补过-找另一个图书馆。在

看看你的密码:

  1. 你的API对象没有传入任何凭据。IIRC,这在1.0 API中是允许的,但1.1 API不允许这样做-您现在必须使用API凭据进行身份验证:

  2. 您应该尝试检查该对象并找出创建404的URL。我猜它是1.0端点。您可能在本地使用更新版本的“twitter”包(不管是什么,该名称空间中有多个),但在服务器上使用的是另一个版本。你应该检查每台机器上的版本。

  3. 您的代码应该捕获HTTP错误。Twitter的API非常好,可以使用HTTP状态代码作为错误消息(https://dev.twitter.com/docs/error-codes-responses)的一部分,并且还可以在消息头上发送信息。这通常可以告诉你到底发生了什么。像Twython这样的图书馆大部分都是为你做的。

你所呈现的代码不可能导致这个错误,所以我不知道发生了什么。在

不传入凭据应生成400;错误凭据应生成401。速率限制是420429。阻塞可能是404或420。在

如果我不得不猜测-在本地,您有一个在1.1API端点之后的包,但是您的服务器有一个在1.0之后的包版本-它已经不存在了。在

Twitter最近弃用了他们的旧API。你可能还在用吗?在

注意,更改应该要求您更新到新的基于OAuth的身份验证模型。如果您的站点是为单个帐户访问tweet,则可以使用https://dev.twitter.com/docs/auth/oauth/single-user-with-examples中的过程来避免提示用户访问。在

相关问题 更多 >

    热门问题