Close Menu
    DevStackTipsDevStackTips
    • Home
    • News & Updates
      1. Tech & Work
      2. View All

      CodeSOD: A Unique Way to Primary Key

      July 22, 2025

      BrowserStack launches Figma plugin for detecting accessibility issues in design phase

      July 22, 2025

      Parasoft brings agentic AI to service virtualization in latest release

      July 22, 2025

      Node.js vs. Python for Backend: 7 Reasons C-Level Leaders Choose Node.js Talent

      July 21, 2025

      The best CRM software with email marketing in 2025: Expert tested and reviewed

      July 22, 2025

      This multi-port car charger can power 4 gadgets at once – and it’s surprisingly cheap

      July 22, 2025

      I’m a wearables editor and here are the 7 Pixel Watch 4 rumors I’m most curious about

      July 22, 2025

      8 ways I quickly leveled up my Linux skills – and you can too

      July 22, 2025
    • Development
      1. Algorithms & Data Structures
      2. Artificial Intelligence
      3. Back-End Development
      4. Databases
      5. Front-End Development
      6. Libraries & Frameworks
      7. Machine Learning
      8. Security
      9. Software Engineering
      10. Tools & IDEs
      11. Web Design
      12. Web Development
      13. Web Security
      14. Programming Languages
        • PHP
        • JavaScript
      Featured

      The Intersection of Agile and Accessibility – A Series on Designing for Everyone

      July 22, 2025
      Recent

      The Intersection of Agile and Accessibility – A Series on Designing for Everyone

      July 22, 2025

      Zero Trust & Cybersecurity Mesh: Your Org’s Survival Guide

      July 22, 2025

      Execute Ping Commands and Get Back Structured Data in PHP

      July 22, 2025
    • Operating Systems
      1. Windows
      2. Linux
      3. macOS
      Featured

      A Tomb Raider composer has been jailed — His legacy overshadowed by $75k+ in loan fraud

      July 22, 2025
      Recent

      A Tomb Raider composer has been jailed — His legacy overshadowed by $75k+ in loan fraud

      July 22, 2025

      “I don’t think I changed his mind” — NVIDIA CEO comments on H20 AI GPU sales resuming in China following a meeting with President Trump

      July 22, 2025

      Galaxy Z Fold 7 review: Six years later — Samsung finally cracks the foldable code

      July 22, 2025
    • Learning Resources
      • Books
      • Cheatsheets
      • Tutorials & Guides
    Home»Development»How to Create an AI-Powered Bot that Can Post on Twitter/X

    How to Create an AI-Powered Bot that Can Post on Twitter/X

    April 23, 2025

    These days, everyone wants to be a content creator. But it can be hard to find time to create and curate content, post on social media, build engagement, and grow your brand.

    And I’m not an exception to this. I wanted to create more content, and had an idea based on something I’ve observed. I subscribe to a few technology newsletters, and I read lots of updates every day about the tech ecosystem. But I’ve noticed that many of my peers often don’t seem to be aware of this news. So, I decided to post my top three news stories (especially about AI) on my Twitter/X account every day.

    I did this for a couple of weeks, but after that I couldn’t find the time to keep it going. So, I did some research into how I could automate the process, and I found a solution. In this guide, I’ll explain the process so you can use it, too.

    By the end of this tutorial, you’ll have created your own AI bot that:

    • Fetches data from an API or crawls a webpage

    • Processes the data using AI

    • Posts the results on Twitter/X

    And the great thing: this entire process is automated.

    Table of Contents

    • Prerequisites

    • How to Build the Bot

      • Step 1: Generate the Twitter API Key

      • Step 2: Generate Access Token and Secret

      • Step 3: Generate an API Key in Google Gemini

    • Node.js Project Setup

      • Step 1: Fetch Data from the API

      • Step 2: Upload the Data as a File to Gemini API

      • Step 3: Prompt Gemini to Get the Latest AI News

      • Step 4: Post Using the Twitter/X API

      • Step 5: Delete the File Uploaded in the Gemini API

      • The Result

    • Conclusion

    Prerequisites

    Before we begin creating a bot, you’ll need to have the following setup and tools ready to go:

    • NodeJS – A simple NodeJS app to code the bot

    You’ll also need some API keys, secrets, and tokens. So, you’ll need to have the following accounts created:

    • Twitter Developer – To generate the Twitter/X API keys, secrets, and tokens

    • Google AI Studio – To generate the Gemini API key

    How to Build the Bot

    There are a number of steps I’ll walk you through to build your bot.

    We’ll start by generating an API Key and Secret so we can use the Twitter/X API. Then we’ll generate an access token and access token secret with “Read and Write” permissions that’ll be able to post in your account. After that we’ll generate an API Key in Google Gemini (we’ll be using the Gemini API to process the data).

    With all that taken care of, we’ll start working on the Node.js app. The app will be able to fetch data from an API, process the data using AI, and then post that data in the form of tweets on Twitter/X.

    Finally, we’ll automate the entire process and schedule it to run daily.

    Step 1: Generate the Twitter API Key

    1. Navigate to Twitter Developer Website.

    2. Click on the “Developer Portal” in the top right:

      Image showing developer portal highlighted

    3. Signup using your account.

    4. You’ll be asked to fill out a form asking how will you use the Twitter API, and a few basic details. It may take up to 24 hours to get approved. But, it’s approved instantly for me.

      Form asking how you'll use the Twitter API

    5. After login, Navigate to “Projects and Apps” and under “Overview” click on “Create App”:

      Create App screen

    6. Enter a name for your app and click “Next” to proceed with creating your app. At the end, you’ll be shown your API Key and Secret. Don’t copy that now.

    7. Click on the project you created from the left side drawer and click on the “Edit” option in “User authentication settings” section.

      Editing the user authentication settings section

    8. Select “Read and Write” in App Permissions section, “Web App, Automated App or Bot” in Type of App section, and enter your website URL (it can be any URL including http://localhost) in the “Callback URI” and “Website URL”. Then hit “Save”.

    9. Go to “Keys and tokens” tab.

    10. Click on “Regenerate” button in “API Key and Secret” section.

    11. Copy and save the API Key and Secret somewhere securely.

    Step 2: Generate Access Token and Secret

    1. Go to “Keys and tokens” tab.

    2. Click on “Generate” or “Regenerate” button in “Access Token and Secret” section.

    3. Copy and save the Access Token and Secret somewhere securely.

      Generating or regenerating keys and tokens

    Step 3: Generate an API Key in Google Gemini

    1. Navigate to Google AI Studio.

    2. Login to your account.

    3. Click on “Get API Key” button at the top right.

    4. Click on “Create API Key” button.

      Create API screen

    5. Copy and save the API Key somewhere securely.

    Alright, we are done with creating the necessary API Keys and Secrets for our project. Let’s put on our coding shoes.

    Node.js Project Setup

    There are 5 major steps for this part of the project. They are:

    1. Fetch data from the API

    2. Upload the data as a file to Gemini API

    3. Prompt Gemini with the uploaded file to get the latest AI news

    4. Post news to Twitter/X using their API

    5. Delete the file uploaded in Gemini API

    These are just the snippets of code that can be assembled together to run this project.

    Step 1: Fetch Data from the API

    In my case, I’ll be using techmeme.com to get the latest news. But this site does not offer an API. So, I’ll be downloading the HTML of this site.

    In the User-Agent header, we pass the value that mimics a browser user agent to avoid potential blocks.

    Step 2: Upload the Data as a File to Gemini API

    Now we need to store this HTML in a separate file. We cannot directly pass the HTML code in the prompt to the Gemini API, as it’ll result in an error. This is because Gemini accepts only a limited number of tokens in this API. The HTML code of any website will always result in huge number of tokens. So, we’ll create a separate file.

    Upload the file to the Gemini API. Refer to the file id in the prompt to Gemini.

    Step 3: Prompt Gemini to Get the Latest AI News

    Let’s write a prompt to Gemini asking it to generate top news by referring to the HTML file provided. We’ll ask it to provide a headline, short description, URL, and three relevant hashtags for each tweet. We’ll also give some example data of how it should look. We’ll ask it to generate a structured response by providing the format of the JSON that we want the output to be.

    You can use whatever model you want to, but I’ll be using the gemini-2.5-pro-exp-03-25 model for this use case. I’m using this model because we need a thinking model that thinks and picks the correct top news – not just one that predicts the next token/word. The Gemini 2.5 Pro model best qualifies for this.

    Step 4: Post Using the Twitter/X API

    Here’s the core of our app. We need to post all the tweets we received from Gemini. We’ll be posting the tweet as a thread. This means that the first tweet will be the root tweet and subsequent tweets will be in the comments of the prior tweet. This makes it a thread.

    To do this, we’ll take the id of each tweet after it’s posted and pass it on to the next tweet as a reference. One additional thing to note here is, after each successful tweet, we’ll give a pause of 5 seconds before posting the next tweet. There are few reasons for doing it this way.

    1. When any script runs, it usually runs at a much higher speed (usually in milliseconds). So, the second tweet may get posted before the first tweet was posted (maybe due to some poor internet connection). Also, I believe Twitter implements some queue system which may quickly process the second tweet before your first. So it’s always better to leave a small gap – if not 5 seconds then at least 1 second

    2. Twitter may have implemented some rate limiting mechanism. So if there are multiple request received from a same IP within a short time frame, they may block the IP and consider your account as spam.

    3. Since we’re using a Free tier API, we are limited to 1500 tweets per month. If you’ve paid for this API, you won’t have to worry about this (since you’ll have a higher limit and the rate limiting mechanism –refer to point #2 – might not be applicable). All of this depends on their pricing, so just refer to that and make your call accordingly.

    I’m using the free tier, and since it’s a hobby project, having a 5 seconds wait time makes sense. I have not faced any issues so far with this.

    Step 5: Delete the File Uploaded in the Gemini API

    After posting all the tweets, it’s time to clean up the system. The only thing we need to do as a clean up is delete the uploaded file. It’s always a best practice to remove an unused file that’s no longer needed. And since we’ve already posted the tweets, we no longer need that file. So, we’ll be deleting it in this step.

    That’s it. We’re all done. You just need to copy these blocks of code into an index.js file and install some dependencies into the project and you should be good to go.

    To make this even more simple, I have created a repo and made it public. Here’s the Github repo URL. You just need to clone the repo, install the dependencies, and run the post command

    git clone https://github.com/arunachalam-b/existential-crisis-alert-bot.git
    cd existential-crisis-alert-bot
    npm i
    

    Create a .env file and update your API keys and secrets in that file:

    GEMINI_API_KEY=
    TWITTER_API_KEY=
    TWITTER_API_SECRET=
    TWITTER_ACCESS_TOKEN=
    TWITTER_ACCESS_TOKEN_SECRET=
    

    Run the following command to post the latest AI news to your account:

    npm run post
    

    The Result

    Here’s a sample output of that command:

    Output

    You can modify the code/prompt to fetch data from a different API and post the top results in your Twitter account.

    Conclusion

    I hope you now understand how you can automate a slightly complex process using AI and some APIs. Just note that this example is not completely automated. You still have to manually run the command everyday to post the tweets.

    But you can automate that process as well. Just drop me a message if you wish to know about that. That topic itself deserves to be a separate tutorial. Also, I would request that you give a star for my project if you enjoyed this tutorial.

    Meanwhile, you can follow my Twitter/X account to receive the top AI news everyday. If you wish to learn more about automation, subscribe to my email newsletter (https://5minslearn.gogosoon.com/) and follow me on social media.

    Source: freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More 

    Facebook Twitter Reddit Email Copy Link
    Previous ArticleYour Meta Ray-Bans just got a big update for free – and it feels like science fiction
    Next Article All About JavaScript Arrays

    Related Posts

    Development

    GPT-5 is Coming: Revolutionizing Software Testing

    July 22, 2025
    Development

    Win the Accessibility Game: Combining AI with Human Judgment

    July 22, 2025
    Leave A Reply Cancel Reply

    For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

    Continue Reading

    CVE-2024-55909 – IBM Concert Software Archive File DoS

    Common Vulnerabilities and Exposures (CVEs)

    CVE-2024-46899 – Hitachi Ops Center Analyzer Viewpoint OVF Authentication Credentials Leakage Vulnerability

    Common Vulnerabilities and Exposures (CVEs)

    Training LLMs to self-detoxify their language

    Artificial Intelligence
    PipeMagic Trojan Exploits Windows Zero-Day Vulnerability to Deploy Ransomware

    PipeMagic Trojan Exploits Windows Zero-Day Vulnerability to Deploy Ransomware

    Development

    Highlights

    The best VPNs for school in 2025: Expert tested and reviewed

    May 21, 2025

    Whether you want to disguise your IP address to improve your privacy at college or…

    It doesn’t matter how many laptops I review or how great the deals are — this is the one I keep coming back to over and over again

    July 9, 2025

    The Future of Indian E-Commerce is Here: Introducing Neonyte, Your Destination for Affordable Shopping

    June 10, 2025

    Replit partners with Microsoft to bring no-code software building to the enterprise

    July 10, 2025
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.