我不确定这里出了什么问题。以下代码可以使用到2天之前。我在tweepy
的{{1}}上使用3.6.0
版本号python3
。现在,当我执行下面给出的代码时,我不断收到错误jupyter notebook
。我究竟做错了什么?我已经看过类似的帖子1,2,3,4,5和6,但没有解决方案。注意,我还重新生成了密钥,但错误仍然存在。
代码是;
TweepError: [{'code': 215, 'message': 'Bad Authentication data.'}]
执行此代码时返回以下错误,
import tweepy
ckey = 'xxx'
csecret = 'xxx'
atoken = 'xxx'
asecret = 'xxx'
# OAuth process, using the keys and tokens
auth = tweepy.OAuthHandler(ckey, csecret)
auth.set_access_token(atoken, asecret)
# Creation of the actual interface, using authentication
api = tweepy.API(auth)
# collect tweets on #MRT
for tweet in tweepy.Cursor(api.search,q="MRT",count=100,
lang="en",rpp=100,
since="2017-04-03").items():
print (tweet.created_at, tweet.text)
任何建议都会有所帮助。
答案 0 :(得分:0)
我复制了您的代码并在系统中执行了该代码,但找不到任何错误。我正在使用tweepy 3.6.0
和Python 3.5.2
。我已经对您的代码进行了两次编辑。
import tweepy
ACCESS_TOKEN = "#####"
ACCESS_TOKEN_SECRET = "#####"
CONSUMER_KEY = "####"
CONSUMER_SECRET = "#####"
# OAuth process, using the keys and tokens
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
# Creation of the actual interface, using authentication
api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)
# collect tweets on #MRT
for tweet in tweepy.Cursor(api.search,q="MRT",count=100,
lang="en",rpp=100).items():
print (tweet.created_at, tweet.text)
请注意两个参数tweepy.API
:wait_on_rate_limit
和wait_on_rate_limit_notify
。 这两个参数非常重要,因为您想保持tweets的流向,因为search
API仅给您提供certain amount of tweets per request 。
您有一个TweepError
with status code 400
。根据文档,它说:
该请求无效或无法通过其他方式提供。随附的错误消息将进一步说明。未经身份验证的请求将被视为无效,并将产生此响应。
一个可能的解释是您的twitter API keys
已不再进行身份验证,因为您已经请求了超过Twitter速率限制的 。
希望这会有所帮助。
答案 1 :(得分:0)
我使用双引号解决了这个问题,我发现您使用了单引号
CONSUMER_KEY =“ xxx”;
答案 2 :(得分:0)
我有同样的问题。重新生成密钥和令牌可以解决该问题。