我正在尝试使用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发回。
感谢您的帮助!
答案 0 :(得分:1)
在https://code.google.com/p/python-twitter/上他们说:
python-twitter库现在只支持oAuth身份验证,因为Twitter开发人员已经指出oAuth是唯一可以支持前进的方法。
api = twitter.Api(consumer_key ='consumer_key', consumer_secret ='consumer_secret',access_token_key ='access_token',access_token_secret ='access_token_secret')
这与您的问题有关吗?
答案 1 :(得分:0)
Twitter是使oAuth流程对开发人员无痛的最好的API之一。如果您登录Twitter并转到https://dev.twitter.com/apps的开发人员仪表板,则可以注册新应用程序(或配置现有应用程序)。
查看应用程序详细信息将为您提供一个&#34; oAuth工具&#34;选项卡,您可以在其中找到该应用的所有相关oAuth值:消费者密钥,消费者密钥,访问令牌和访问令牌密钥。
如果您要创建一个始终以Twitter作为同一用户进行身份验证的应用程序,您只需将这些值硬编码到代码中或将其存储在某个配置文件中。如果您的应用程序需要代表多个用户对Twitter进行身份验证(例如,以便它可以代表用户发布状态),那么您需要经历{{3}中描述的oAuth舞蹈。 }。