Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
318 views
in Technique[技术] by (71.8m points)

tweepy error python 2.7

I keep getting this error:

tweepy.error.TweepError: [{u'message': u'Status is a duplicate.', u'code': 187

I have no clue why I am getting this error I have tried everything!

My main code is:

import socket
from urllib2 import urlopen, URLError, HTTPError

socket.setdefaulttimeout( 23 )  # timeout in seconds

url = 'http://google.co.uk'
try :
    response = urlopen( url )
except HTTPError, e:
    tweet_text = "Raspberry Pi Server is DOWN!"
    textfile = open('/root/Documents/server_check.txt','w')
    textfile.write("down")
    textfile.close()
except URLError, e:
    tweet_text = "Raspberry Pi Server is DOWN!"
    textfile = open('/root/Documents/server_check.txt','w')
    textfile.write("down")
    textfile.close()
else :
    textfile = open('/root/Documents/server_check.txt','r')
    if 'down' in open('/root/Documents/server_check.txt').read():
        tweet_text = "Raspberry Pi Server is UP!"
        textfile = open('/root/Documents/server_check.txt','w')
        textfile.write("up")
        textfile.close()
    elif 'up' in open('/root/Documents/server_check.txt').read():
        tweet_text = ""
if len(tweet_text) <= 140:
    if tweet_text == "Raspberry Pi Server is DOWN!" or tweet_text == "Raspberry Pi Server is UP!":
        api.update_status(status=tweet_text)
    else:
        pass
else:
    print "Your message is too long!"

I have removed the API's for security reasons! I have also removed the link to my server. Any help will be appreciated!

Thanks

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The problem was that tweepy doesn't let you tweet the same tweet twice so to fix it i added these lines of code:

for status in tweepy.Cursor(api.user_timeline).items():
    try:
        api.destroy_status(status.id)
    except:
        pass

the code above deletes previous tweets so that my next tweet doesn't fail.

I hope this helps someone else!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...