介绍
snoowrap 是一个适用于 Node.js 的 Reddit API 客户端库,用于通过 Reddit 的 API 进行身份验证和与 Reddit 进行交互。本文将详细介绍如何使用 snoowrap 包。
安装
要安装 snoowrap,只需在终端中运行以下命令:
npm install snoowrap
登录
首先,您需要创建一个 Reddit 应用程序。在 Reddit 开发者页面上创建应用程序后,您将获得以下信息:
客户端 ID
客户端秘密
用于授权的 Reddit 帐户的用户名和密码
下面是如何在 snoowrap 中进行身份验证的示例代码:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- - - --- ---------- ---------- -------------- --------- ------------- ------------- ----------------- --------- ------------------- --------- ------------------ ---
其中,userAgent 是您的应用程序的标识符,可以随意输入。
基本用法
使用 snoowrap,可以轻松地获取有关 Reddit 上的帖子、评论、用户和 subreddit 的信息。下面是一些示例代码:
获取 subreddit
const subreddit = await r.getSubreddit('AskReddit'); console.log(subreddit.title); // "r/AskReddit – AskReddit: The place where everyone can ask for help with Reddit!"
获取帖子
const post = await r.getSubmission('odzo3p'); console.log(post.title); // "What is something you can’t believe someone got away with?"
获取评论
const comment = await r.getComment('g0hxzqs'); console.log(comment.body); // "There is so much to unpack here."
获取用户
const user = await r.getUser('spez'); console.log(user.created_utc); // 1140948174
发布帖子
await r.getSubreddit('testingground4bots').submitSelfpost({ title: 'Test post', text: 'This is a test post.' });
进阶用法
使用 snoowrap,您还可以执行一些高级操作,例如:
递归获取所有帖子
-- -------------------- ---- ------- ----- --------- - ----- ---------------------- ----- ----- - ----- ------------------ ----- ------ ------ --- --- ----- -------- - ----- ------------------ ----- ----- -- - ----- -------- - ----- ---- ----- -------- - ----- ------------------------- ----- ------- - ------------------- - -------- --- ------ ------------- --------- -- ---- ----------------------
用关键词搜索帖子
const results = await r.search({ query: 'kittens', subreddit: ['aww'], sort: 'comments' }); console.log(results.map(post => post.title).join('\n'));
同时获取多个 subreddit 的内容
const [r1, r2, ...rest] = await r.getSubreddits(['all', 'AskReddit']); const posts = await Promise.all([r1.getNew(), r2.getNew()]); console.log(posts.flat().map(post => post.title).join('\n'));
结论
使用 snoowrap,您可以在 Node.js 中轻松地与 Reddit 进行交互,实现各种有趣的操作。希望本文能够帮助您学习和使用 snoowrap 包。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f0d4fbf403f2923b035c1a7