我正在尝试使用twitter-python连接到twitter的API,但我不断收到这个讨厌的404错误!
代码如下:
import sys
import twitter
def main():
api = twitter.Api()
statuses = api.GetPublicTimeline()
print [s.user.name for s in statuses]
它应该返回在公共时间线上发布状态更新的人员的姓名,但我得到了这个回溯。
Traceback (most recent call last):
File "new.py", line 14, in <module>
main()
File "new.py", line 10, in main
statuses = api.GetPublicTimeline()
File "/usr/lib/pymodules/python2.7/twitter.py", line 1319, in GetPublicTimeline
json = self._FetchUrl(url, parameters=parameters)
File "/usr/lib/pymodules/python2.7/twitter.py", line 2030, in _FetchUrl
url_data = opener.open(url, encoded_post_data).read()
File "/usr/lib/python2.7/urllib2.py", line 400, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 513, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 438, in error
return self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 372, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 521, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 404: Not Found
如果我尝试进行身份验证,我的所有请求都会返回为 401。
感谢您的帮助!
https://code.google.com/p/python-twitter/他们说:
python-twitter库现在只支持oAuth身份验证,因为Twitter开发人员表示oAuth是唯一将支持的方法。
API = 推特。API(consumer_key='consumer_key', consumer_secret='consumer_secret', access_token_key='access_token', access_token_secret='access_token_secret')
这与您的问题相关吗?
在使开发人员的oAuth过程变得轻松方面,Twitter是更好的API之一。如果你登录到 Twitter 并转到 https://dev.twitter.com/apps 的开发人员仪表板,则可以注册新应用程序(或配置现有应用)。
查看应用程序详细信息将为您提供"oAuth 工具"选项卡,您可以在其中找到该应用程序的所有相关 oAuth 值:使用者密钥、使用者机密、访问令牌和访问令牌机密。
如果你正在创建一个始终以同一用户身份向 Twitter 进行身份验证的应用程序,则只需将这些值硬编码到代码中或将它们存储在某个位置的配置文件中即可。如果你的应用程序需要代表多个用户向 Twitter 进行身份验证(例如,以便它可以代表用户发布状态),那么你需要完成 oAuth 舞蹈,如 https://dev.twitter.com/docs/auth/3-legged-authorization 中所述。