发布于 2026-01-06 2 阅读
0

用 JavaScript 构建你的第一个 Twitter 机器人只需 4 个简单步骤

用 JavaScript 构建你的第一个 Twitter 机器人只需 4 个简单步骤

开发推特机器人是业余开发者必经之路的一部分。说实话,开发机器人真的很有趣。

让我们开始学习如何使用 NodeJS 创建第一条推文吧!我们将通过简单的四步流程,教你如何快速搭建并运行你的第一个机器人!

第一步:获取访问权限

截至撰稿时,申请开发者推特账号需要满足特定条件。申请流程简单明了,只需几分钟即可填写完毕。

如果您尚未执行此步骤,则才需要执行此步骤。

第二步:获取代币

一旦您获得开发者控制面板的访问权限,您就可以创建您的第一个应用程序并获取您的 Twitter 访问令牌

在控制面板中,您需要前往Projects & Apps > Your Project > Your App并选择Keys and tokens顶部的选项卡。这样您就可以复制并保存您的密码API Key & Secret。这些密码仅保留一天左右。请务必将它们保存在安全的地方!我通常会选择使用密码管理器。

您还需要生成密钥Access Token & Secret。这可以在 [此处应填写具体路径] 下完成Authentication Tokens。复制这些密钥并妥善保管。我们需要所有四个已存储的密钥。

混淆的身份验证令牌密钥

混淆的身份验证令牌密钥

完成以上步骤后,请将密钥放在手边,我们将开始组装机器人。

第三步:添加读写权限

在同一个控制面板中,前往Projects & Apps > Your Project > Your App并确保将您的App permissions值更改为Read and Write

这对于我们使用上述凭据发布推文至关重要。

读写权限

选择读写权限

第四步:构建应用程序

为了尽快发布第一条推文,我们先保持简洁明了!我们将使用Twit包作为发布推文的媒介,并使用Dotenv在运行时从本地加载环境变量(这样我们就可以安全地让 Git 忽略它们)。

从您的新项目根目录开始:

# init with the basics
yarn init -y
yarn add twit
yarn add --dev dotenv
touch index.js .env .gitignore
Enter fullscreen mode Exit fullscreen mode

在内部.gitignore,让我们确保我们的密钥没有存储在远程存储库中:

node_modules/
.env
Enter fullscreen mode Exit fullscreen mode

我们需要将之前保存的访问令牌添加到.env

TWITTER_CONSUMER_KEY=<your-token>
TWITTER_CONSUMER_SECRET=<your-token>
TWITTER_ACCESS_TOKEN_KEY=<your-token>
TWITTER_ACCESS_TOKEN_SECRET=<your-token>
Enter fullscreen mode Exit fullscreen mode

最后,让我们把代码添加到index.js

require("dotenv").config()
const Twit = require("twit")
const client = new Twit({
  consumer_key: process.env.TWITTER_CONSUMER_KEY,
  consumer_secret: process.env.TWITTER_CONSUMER_SECRET,
  access_token: process.env.TWITTER_ACCESS_TOKEN_KEY,
  access_token_secret: process.env.TWITTER_ACCESS_TOKEN_SECRET,
})

/**
 * Post a tweet to account.
 *
 * @example
 * const tweet = await Twitter.post('This is an update', res.media.media_id_string);
 * // returns success/error object
 *
 * @param  {String} tweet  Tweet string
 * @param  {Twitter} client Client instance of Twitter package
 * @return {Promise<ClientResponse>} Return error or success object
 */
const post = tweet => {
  const limit = 136

  // ensure Tweet is correct length, but if not let's truncate
  // and still post.
  const tweetSubstr =
    tweet.length > limit ? `${tweet.substring(0, limit - 3)}...` : tweet

  const data = {
    status: tweetSubstr,
  }

  // use the client to post the message
  return client.post("statuses/update", data)
}

const main = async () => {
  try {
    console.log("Attempting to post")
    await post("First post from the blog helper bot!")
    console.log("Posted!")
  } catch (err) {
    console.error(err)
  }
}

main()
Enter fullscreen mode Exit fullscreen mode

我们所做的事情index.js相当简单明了,但让我们来详细分析一下:

  1. 从文件中加载环境变量,.env以便在运行时访问。
  2. 引入我们的 Twitter 库Twit并使用我们的环境变量对其进行初始化。
  3. 声明一个post函数,该函数接收一段文本,检查其长度是否小于设定的限制,然后使用客户端进行发布。
  4. 声明main一个异步函数,该函数将尝试发布文本。"First post from the blog helper bot!"
  5. 运行该main函数

值得注意的是,post它返回一个 Promise,因此我们创建了main一个async函数并await在调用 POST 方法时使用它。

就是这样!现在运行程序node index.js。如果成功,你应该会看到以下结果:

> node index.js
Attempting to post
Posted!
Enter fullscreen mode Exit fullscreen mode

如果操作失败,系统会捕获错误并将其记录下来。

如果我们现在打开推特,就可以看到我们的成功!

第一个推特机器人帖子

第一个推特机器人帖子

恭喜!现在您可以远程发帖,避免在浏览推特时不时遇到的负面情绪!

资源和延伸阅读

  1. 申请访问权限
  2. 获取 Twitter 访问令牌
  3. 推特
  4. 多滕夫
  5. 项目已完成
  6. Twitter 文档 - 状态/更新

图片来源:freestocks

原文发布于我的博客。关注我的推特账号@dennisokeeffe92,获取更多精彩内容

文章来源:https://dev.to/okeeffed/4-easy-steps-to-building-your-first-twitter-bot-with-javascript-1c93