用 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
在内部.gitignore,让我们确保我们的密钥没有存储在远程存储库中:
node_modules/
.env
我们需要将之前保存的访问令牌添加到.env:
TWITTER_CONSUMER_KEY=<your-token>
TWITTER_CONSUMER_SECRET=<your-token>
TWITTER_ACCESS_TOKEN_KEY=<your-token>
TWITTER_ACCESS_TOKEN_SECRET=<your-token>
最后,让我们把代码添加到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()
我们所做的事情index.js相当简单明了,但让我们来详细分析一下:
- 从文件中加载环境变量,
.env以便在运行时访问。 - 引入我们的 Twitter 库
Twit并使用我们的环境变量对其进行初始化。 - 声明一个
post函数,该函数接收一段文本,检查其长度是否小于设定的限制,然后使用客户端进行发布。 - 声明
main一个异步函数,该函数将尝试发布文本。"First post from the blog helper bot!" - 运行该
main函数
值得注意的是,
post它返回一个 Promise,因此我们创建了main一个async函数并await在调用 POST 方法时使用它。
就是这样!现在运行程序node index.js。如果成功,你应该会看到以下结果:
> node index.js
Attempting to post
Posted!
如果操作失败,系统会捕获错误并将其记录下来。
如果我们现在打开推特,就可以看到我们的成功!
恭喜!现在您可以远程发帖,避免在浏览推特时不时遇到的负面情绪!
资源和延伸阅读
图片来源:freestocks
原文发布于我的博客。关注我的推特账号@dennisokeeffe92,获取更多精彩内容。
文章来源:https://dev.to/okeeffed/4-easy-steps-to-building-your-first-twitter-bot-with-javascript-1c93


