Riccardo Gai
Riccardo Gai

Reputation: 421

Post tweet with tweepy

I'm trying to post a tweet with the tweepy library. I use this code:

import tweepy

CONSUMER_KEY ="XXXX"
CONSUMER_SECRET = "XXXX"   
ACCESS_KEY = "XXXX"    
ACCESS_SECRET = "XXXX"

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

api = tweepy.API(auth)
api.update_status('Updating using OAuth authentication via Tweepy!')

But when I run the application, I receive this error:

raise TweepError(error_msg, resp)
TweepError: Read-only application cannot POST.

How can I fix this?

Upvotes: 11

Views: 20998

Answers (4)

deusopus
deusopus

Reputation: 13

the following python script will tweet a line from a text file. if you want to tweet multiple tweets just put them on a new line separated by a blank line.

import tweepy
from time import sleep
# import keys from cregorg.py
from credorg import *

client = tweepy.Client(bearer_token, consumer_key, consumer_secret, access_token, access_token_secret)

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

api = tweepy.API(auth, wait_on_rate_limit=True)

print("Tweet-TXT-Bot v1.0 by deusopus ([email protected])")

# Open text file tweets.txt (or your chosen file) for reading
my_file = open('tweets.txt', 'r')

# Read lines one by one from my_file and assign to file_lines variable
file_lines = my_file.readlines()

# Close file
my_file.close()

# Tweet a line every 5 minutes
def tweet():
    for line in file_lines:
        try:
             print(line)
             if line != '\n':
                 api.update_status(line)
                 sleep(300)
             else:
                pass
        except tweepy.errors.TweepyException as e:
            print(e)

while True:

    tweet()

Upvotes: 0

Ahmed Elgammudi
Ahmed Elgammudi

Reputation: 746

You have to set your app to read and write enter image description here

After that, you'll be able to run your code.

Upvotes: 0

Marc
Marc

Reputation: 31

the code works for me with only

api.update_status (**status** = 'Updating using OAuth authentication via Tweepy!')

Upvotes: 3

user2737086
user2737086

Reputation: 299

In the application's settings, set your Application Type to "Read and Write". Then renegotiate your access token.

Upvotes: 15

Related Questions