45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
"""A module that contains a command to send a tweet."""
|
|
import os
|
|
|
|
import tweepy
|
|
from dotenv import load_dotenv
|
|
|
|
from autogpt.commands.command import command
|
|
|
|
load_dotenv()
|
|
|
|
|
|
@command(
|
|
"send_tweet",
|
|
"Send Tweet",
|
|
'"text": "<text>"',
|
|
)
|
|
def send_tweet(tweet_text: str) -> str:
|
|
"""
|
|
A function that takes in a string and returns a response from create chat
|
|
completion api call.
|
|
|
|
Args:
|
|
tweet_text (str): Text to be tweeted.
|
|
|
|
Returns:
|
|
A result from sending the tweet.
|
|
"""
|
|
consumer_key = os.environ.get("TW_CONSUMER_KEY")
|
|
consumer_secret = os.environ.get("TW_CONSUMER_SECRET")
|
|
access_token = os.environ.get("TW_ACCESS_TOKEN")
|
|
access_token_secret = os.environ.get("TW_ACCESS_TOKEN_SECRET")
|
|
# Authenticate to Twitter
|
|
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
|
|
auth.set_access_token(access_token, access_token_secret)
|
|
|
|
# Create API object
|
|
api = tweepy.API(auth)
|
|
|
|
# Send tweet
|
|
try:
|
|
api.update_status(tweet_text)
|
|
return "Tweet sent successfully!"
|
|
except tweepy.TweepyException as e:
|
|
return f"Error sending tweet: {e.reason}"
|