Blogs

Published At Last Updated At
profile
Yash BhanushaliSoftware Engineerauthor linkedin

How to Make a Twitter Bot in Python With Tweepy

img

Twitter bots have become an increasingly popular way to automate tasks, interact with users, and disseminate information on the social media platform.


In this tutorial, we will explore the process of creating Twitter bots using Python library Tweepy which uses the Twitter v2 API. Whether you're a developer looking to automate your social media presence or an enthusiast interested in experimenting with bot creation, this comprehensive tutorial will walk you through the steps of building your own Twitter bot using Python.


Crafting a vibrant Twitter presence involves a continuous cycle of tweeting, retweeting, following, and responding to followers. While managing these tasks manually is an option, it can be time consuming.


Enter the Twitter Bot – a program tailored to automate all or part of your Twitter activity, ensuring a dynamic online presence with minimal effort. This automated ally not only saves time but also empowers you to concentrate on creating impactful content and building authentic connections on Twitter.

What is Tweepy

Tweepy is a popular Python library for accessing the Twitter API. It provides a convenient way to interact with Twitter's API, allowing developers to create applications that can read and write Twitter data. 


With Tweepy, you can perform tasks such as fetching tweets, posting tweets, following users, and much more. To get started with Tweepy, you'll need to create a Twitter Developer account and obtain API keys and access tokens. Once you have these credentials, you can use Tweepy to authenticate with the Twitter API and start interacting with Twitter programmatically. 


Tweepy's documentation provides detailed information on its usage, including code examples and explanations of its various features. It's a powerful tool for anyone looking to integrate Twitter functionality into their Python applications.

This article guides you through: 

  • Enhancing and automating your engagement with your Twitter audience
  • Installing Tweepy 
  • Registering as a Twitter developer to access its API 
  • Employing Tweepy to interact with the Twitter API 
  • Crafting your own Twitter Bots

Installation

To install Tweepy, leverage pip, a Python package manager. This article recommends employing a virtual environment (virtualenv) for your projects to mitigate reliance on system-wide packages.

You need to have Python installed on your system. 

Step 1: Create a new directory 

Step 2: Go into the newly created directory 

Step 3: Create a virtual environment


1mkdir twitter-bots
2cd twitter-bot 
3python3 -m venv venv


t1

We shall now activate the virtual environment of our project to install essentials dependencies only


1source ./venv/bin/activate


t2


You will see your virtual environment activated in your terminal.

Having activated the virtual environment successfully, we can now move on to acquiring the necessary dependencies for our project. In this specific instance, the only library needed is Tweepy.


1pip install tweepy


Tweepy stands as a sophisticated and effective tool for constructing our bots. An open-source Python package, Tweepy facilitates access to the Twitter API. At its foundation, Tweepy reveals a collection of classes and methods mirroring the core functionality of Twitter’s API endpoints.

Now that Tweepy is installed, let’s create a requirements.txt file containing the names of your dependencies. You can use the pip command freeze for this task:


1pip freeze > requirements.txt


Setting Up your Twitter account — Twitter API v2

The Twitter API mandates the use of OAuth for authentication in all requests. To enable API access, it's imperative to generate the necessary authentication credentials, consisting of four essential text strings: 

  • Consumer Key 
  • Consumer Secret 
  • Access Token 
  • Access Secret
  • Bearer Token

 

Follow these steps to create these credentials if you already have a Twitter user account. Otherwise, sign up for a Twitter account before proceeding with the following instructions.

The Twitter API comprises a diverse array of HTTP endpoints, each unlocking access to a lot of features. It's worth noting that certain advanced features necessitate the $100-a-month Basic account option, offering enhanced access. But, for the functionality of our simple bot, we created a Free version of our Twitter plan.


Step 1 : Sign up to Twitter

Step 2  : Go to Twitter Developer account & Sign up

t3


t4


Step 3 :

Generate the following keys for accessing API v2

1. Consumer key (API Key)

2. Consumer secret (API Key Secret)

3. Bearer Token

4. Access Token

5. Access Token Secret


Step 4 :

Go to user Authentication Settings And set up our project Details


t5


Set our project to Read & Write Messages and other details from our twitter handle

t6

t7

t8


Save the changes for our project and save the generated keys. Now lets jump into our python script.

Creating bots using Tweepy Functions in python

Tweepy acts as a bridge, allowing you to connect with the Twitter API using Python. It simplifies the intricacies of the Twitter API by providing a user-friendly interface and adding extra features on top of it. 

Due to changes in the version of Twitter API i.e v2 over time, Tweepy uses some new names and methods and classes for connection and interaction on twitter.

Tweepy’s functionality can be divided into the following groups: 

  • OAuth 
  • The API class 
  • Models 
  • Cursors 
  • Streams


tweet_bot.py

1import tweepy 
2import time 
3bearer_token="" 
4api_secret="” 
5access_token="" 
6access_token_secret="" 
7client=tweepy.Client(bearer_token=bearer_token,consumer_key=api_key, consumer_secret=api_secret, access_token=access_token, access_token_secret=access_token_secret) 
8client.get_me()


In the above code, it  creates a Tweepy client instance, which is essentially an object that allows you to make requests to the Twitter API. The parameters passed are authentication credentials, including the bearer token, consumer key, consumer secret, access token, and access token secret.

In client.get_me() it is used to retrieve information about the authenticated user (the account associated with the provided credentials). You can test if your initial code is working properly.


Methods for Tweeting


  1. Create a tweet
1import tweepy 
2import time 
3bearer_token="" 
4api_secret="” 
5access_token="" 
6access_token_secret="" 
7client = tweepy.Client(bearer_token=bearer_token,consumer_key=api_key, consumer_secret=api_secret, access_token=access_token, access_token_secret=access_token_secret) 
8client.create_tweet(text='Hello world This is Javascript', user_auth=True)


The client.create_tweet() method in Tweepy allows for the creation of a new tweet through interaction with the Twitter API. In the provided example, the content of the tweet is set to "Hello world! This is Python" using the text parameter. The user_auth=True parameter signifies the utilization of the Tweepy client's authentication details, ensuring that the tweet is associated with the authenticated user's account.

Save your twitter_bot.py file and run it using the command: 


1python twitter_bot.py


This will create a tweet “Hello world! This is Python” using the associated user’s account.


t9


As you can see, we successfully tweeted using out twitter python bot


  1. Retweet


Create a re-tweet bot which shall create a simple bot that retweets tweets containing specific keywords. You can customize this functionality to suit your needs.

1def retweet_bot(search_keywords, retweet_count):
2    for keyword in search_keywords:
3        try:
4            tweets = client.search_recent_tweets(query=keyword, max_results= retweet_count, user_auth=True)
5            for tweet in tweets:
6                if not tweet.retweeted:
7                    tweet.retweet()
8                    print(f"Retweeted: {tweet.text}")
9                    time.sleep(5)
10        except tweepy.TwitterServerError as e:
11            print(f"Error: {e}")
12retweet_bot( ["python", "tutorial"], 2)


The retweet_bot function is a Python script utilizing the Tweepy library to automate retweeting based on specified search keywords. It iterates through the provided keywords, searches recent tweets matching each keyword, and retweets up to a specified count for each keyword. 

The function includes error handling for potential Twitter server errors. In the provided example, the function is used to search for tweets containing "python" and "tutorial," retweeting up to two tweets for each keyword. A 5-second delay is implemented between retweets to adhere to Twitter's rate limits.


  1. Get User


1id = 'USER_ID'
2tweets = client.get_users_mentions(id=id, tweet_fields=['context_annotations','created_at','geo'])


In this code snippet, the Tweepy library is utilized to retrieve tweets mentioning a Twitter user with the specified ID. The user's ID is assigned to the variable id, and the get_users_mentions method is then invoked with the user ID parameter (id). 

Additionally, specific tweet fields such as context annotations, creation time, and geolocation information are specified using the tweet_fields parameter. The fetched tweets are stored in the variable tweets for further processing or analysis.


  1. Follow User


1client.follow_user(list_id="user_name" ,user_auth=True)


The code attempts to follow a Twitter user with the given username or ID  using the Tweepy client, and it employs user authentication for the operation.

Great job! You've now built a basic Twitter bot in Python with Tweepy. You can enhance its capabilities by adding features like liking tweets, following users, or posting your own tweets.

Conclusion

In conclusion, delving into the creation of a Twitter bot using the Tweepy API in Python opens up a realm of possibilities for automating various interactions on the platform. 

Whether it's retweeting, liking tweets, following users, or posting content, the flexibility of the Twitter API allows developers to tailor their bots to specific needs. 

The straightforward nature of Tweepy allowed us to build a functional Twitter bot with ease, offering a solid foundation for further customization and expansion of its capabilities.

However, it is important to approach bot development responsibly, adhering to Twitter's terms of service and respecting user privacy. As you explore and expand the functionalities of your Twitter bot, always strive for a positive and ethical impact in the dynamic landscape of social media automation.