Search code examples
pythonpython-3.xtweepy

Not being able to answer tweets with twitter bot


I've made this bot to reply to tweets; it's detecting and registering the users id but it doesn't tweet at them and i don't know why.

What could it be?

I've deleted the token and keys from the code the code should reply with one of the strings randomly from the listtt

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)

FILE_NAME = "last_seen_id.text"

def retrieve_last_seen_id(file_name):
    f_read = open (file_name, "r")
    last_seen_id = int(f_read.read().strip())
    f_read.close()
    return last_seen_id

def store_last_seen_id(last_seen_id, file_name):
    f_write = open(file_name, "w")
    f_write.write(str(last_seen_id))
    f_write.close()
    return

def reply_to_tweets():
    print("Trabajando como esclavo...")
    last_seen_id = retrieve_last_seen_id(FILE_NAME)
    listtt = ["Amo que me saquen mi foto. Prueba que existo" , "Todo el que diga que hizo una lagartija miente" , "Aquí está el secreto para ser feliz: solo finge que eres feliz y eventualmente olvidarás que estabas fingiendo" , "No estoy calificado para cubrir una noticia tan importante. Pero como hombre blanco heterosexual, avanzaré con confianza y asumiré que lo estoy haciendo bien" , "Si me disculpas, necesito tomarme una ducha, así no podré decir si estoy llorando o no", "No puedo, soy como una figura paterna para él. Me acosté con su madre." , "El concepto de las mujeres tomando sus propias decisiones ha llegado demasiado lejos? Hemos armado un diverso panel de hombres blancos con corbatas para hablar acerca del aborto. Caballeros?" , "Me acordaré, estoy sobrio" , "Soy responsable de mi propia felicidad? No puedo hacerme responsable ni de mi propio desayuno!" , "No te amo. No me amas. Solo somos dos personas solitarias tratando de odiarse un poco menos." , "Escuchame niño, no necesito la historia de tu vida.  Solo vine aquí a suicidarme." , "Por favor, pueden poner alcohol en mi boca!?" , "Quiero que te vayas en silencio! Algunos de nosotros tratamos de olvidar que existes" , "I need help" , "Me sorprende cómo la gente se levanta cada mañana  y dice: Nuevo día, vamos a hacerlo! Cómo hace la gente? No entiendo cómo" , "No tengo ni quiero hijos. Pero juzgo silenciosamente a todos los padres que veo por la calle." , "Hooray! A task!" , "Eso es lo que pasa cuando mezclas el apetito de un caballo con el apetito de alguien que está solo y con un agujero dentro, que necesita ser llenado constatemente con atención, comida y sexo." , "Solo necesito algo para concentrarme. Café! No, no. Cigarrillos! No. Tequila." , "Debo decir que estoy pasando el mejor momento de mi vida deprimido" , "Voy a contarle a todo el mundo esto. Soy de Geminis" , "Cuando miras a alguien a través de anteojos rosas, todas las banderas rojas son solo banderas" , "Y un día mirarás al rededor y te darás cuenta de que todos te aman... pero nadie te quiere" , "Todos los días es un poco más fácil. Pero tienes que hacerlo todos los días. Esa es la parte difícil. Pero se pone más fácil" , "You know, sometimes i feel like my whole life is just a series of loosely-related wacky misadventures" , "El universo es cruel, un vacío indiferente. La clave para ser feliz no es buscar un sentido. Es mantenerte ocupado con cosas sin importancia, y eventualmente, estarás muerto."]
    mentions = api.mentions_timeline(
                        last_seen_id,
                        tweet_mode="extended")

    for mention in reversed(mentions):
        print(str(mention.id) + " - " + mention.full_text)
        last_seen_id = mention.id
        store_last_seen_id(last_seen_id, FILE_NAME)
        api.update_status("@" + mention.user.screen_name + " " +
                                random.choice(listtt), mention.id)

while True:
    try:
        reply_to_tweets()
        time.sleep(30)
    except tweepy.error.TweepError:
        continue

Solution

  • Did you change App permissons to "Read, Write, and Direct Messages" in Settings of your project? And after that you must regenerate keys and tokens.