使用 Python 和 AWS Lambda 构建 Twitter 机器人

2025-05-25

使用 Python 和 AWS Lambda 构建 Twitter 机器人

我觉得机器人很棒。我很喜欢宝可梦卡牌上的图案。所以我做了一个推特机器人,每六个小时发两张宝可梦卡牌,就像游戏里的宝可梦对战一样。

您可以在@tinyversusbot上查看 Twitter 机器人,如果您想看看与您一起开始冒险的 Pokémon 团队,请访问tinyversusbot

以下是我如何使用 Python 和 AWS Lambda 创建此机器人的概述。


概括

  1. tweepy使用库将 Twitter 开发者帐户链接到你的 Python 项目

  2. 将您的项目添加到 AWS Lambda 以按间隔发送推文


分解

第一部分:Twitter 开发者账户和tweepyPython 库

1. 创建 Twitter 帐户
如果您还没有创建,您需要创建一个 Twitter 帐户,以便您的机器人能够使用该帐户发推文。您可以在这里注册。

2. 创建 Twitter 开发者账户您可以在此处
创建您的 Twitter 开发者账户。将此账户与您在步骤 1 中创建的 Twitter 账户连接起来。

3. 通过 Tweepy 连接到您的 Twitter 帐户
我使用了tweepy此机器人的库 - 您需要安装它。

pip install tweepy
Enter fullscreen mode Exit fullscreen mode

导入tweepy并设置授权。

import tweepy

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)
Enter fullscreen mode Exit fullscreen mode

以下是一些推文代码示例:

# Standard tweet
# var tweet || inline string
api.update_status(status=tweet)

## Tweet with media (multiple images)
api.update_status(status=tweet, media_ids=mediaIds)
Enter fullscreen mode Exit fullscreen mode

注意:您无法直接从图片的网址发送推文。您必须先将图片存储在本地才能使用。

查看他们的文档以了解其他tweepy能力。


第 2 部分:在 AWS Lambda 上设置您的机器人

1. 创建 AWS 账户如果您还没有 AWS 账户,
请注册一个。

2. 创建您的 Lambda 函数
转到Lambda 服务,单击“函数”,然后单击“创建函数”。为您的函数命名,选择适当的运行时,然后单击“创建函数”。

在 Lambda 函数中,您可以直接将代码放入lambda_function.pyAWS 代码编辑器中,也可以创建自己的文件。请勿删除lambda_handlerLambda 运行时需要返回状态码的函数。

return在函数上方lambda_handler,调用您的推文函数。

替代文本

2.5. 添加环境变量
我最初将此代码提交到 GitHub 并部署到 Heroku,因此我设置了环境变量 - 这样我就可以连接到 Twitter API 而无需提交我的秘密。

当我将推文代码移至 AWS Lambda 时,我仍然创建了环境变量以将任何凭据排除在代码之外。

将您的授权密钥和机密添加为环境变量并更新您的代码。

下面是我将消费者密钥声明为环境变量的示例:

CONSUMER_KEY = environ['CONSUMER_KEY']
Enter fullscreen mode Exit fullscreen mode

3. 添加层。
我导入了一些 Lambda 原生未安装的 Python 包。层存储依赖项,可供其他函数使用。因此,如果您恰好创建了大量使用相同库的 Twitter 机器人,则无需为每个新函数重新打包它们。

你的 Python 库需要以压缩文件夹的形式导入到python子目录中。我的压缩文件夹结构如下:

layer > python > my python libraries
Enter fullscreen mode Exit fullscreen mode

在 Lambda 仪表板上,创建一个新层并上传 .zip 文件。返回 Lambda 函数并添加新层。要测试并确认一切正常,请点击 Designer 面板上方的“测试”按钮。

如果你的 Twitter 账户上有新推文,恭喜!成功了!

4. 添加 CloudWatch 触发器
现在我们需要添加一个触发器,让它以特定的时间间隔自动运行,以便你的机器人能够自行发推文。我的机器人没有任何特殊要求,只需要每六小时发布一次推文,所以我将它设置为每六小时固定一次的定时发布。

替代文本

前往您的 CloudWatch 服务并创建新规则(在“事件”选项卡下)。为您的 Lambda 函数设置一个新目标,然后按“配置详细信息”。

完成所有这些之后,我的设计器面板如下所示:

替代文本

5. 大功告成!
你的 Twitter 机器人应该已经激活并可以自行运行了。

注意默认超时设置。我的代码在默认时间后就超时了,所以我不得不增加超时设置。如果你的程序运行时间超过默认的 30 秒,则需要增加超时设置。

在 AWS Lambda 的免费套餐中,您每月可免费获得 100 万个请求。如果您计划超出免费套餐的限制,请密切关注您消耗的计算时间。您可以在 Lambda 函数的“监控”选项卡中找到 CloudWatch 指标。

祝您机器人开发愉快!欢迎在下方分享您的 Twitter 机器人。

文章来源:https://dev.to/jeannienguyen/building-a-twitter-bot-with-python-and-aws-lambda-27jg
PREV
.NET Core 中的清洁架构 清洁架构摘要
NEXT
如何打造你的精彩 GitHub 个人资料 ɪ'ᴍ ᴋɪʀᴀɴ!欢迎👋