1. 什么是 patreon-api?
Patreon 是一个网站,允许用户向他们喜欢的创作者提供资助,从而获得一些特殊的奖励和内容。patreon-api
是一个用于连接 Patreon API 的 npm 包。它可以让我们在 Node.js 应用程序中轻松调用 Patreon API,并提供了一些工具来处理 OAuth 身份验证。
2. 安装
你可以通过运行以下命令来安装 patreon-api
:
npm install patreon-api --save
3. 初始化
在使用 patreon-api
前,我们需要初始化一个 Patreon API 实例。使用下面的代码初始化。
const PatreonAPI = require('patreon-api'); const patreonAPI = PatreonAPI({ clientId: 'your-patreon-client-id', clientSecret: 'your-patreon-client-secret', redirectUri: 'your-patreon-redirect-uri', });
你需要替换代码中的三个值:
clientId
是你在 Patreon 获取的 client id。clientSecret
是你在 Patreon 获取的 client secret。redirectUri
是你用来重定向 OAuth 程序的 URL。
这三个值都可以在 Patreon 开发者设置页面找到。
4. 身份验证
Patreon API 使用 OAuth2 进行身份验证。在连接 Patreon API 之前,你需要让你的用户授权你的应用程序访问他们的 Patreon 资料。
下面是一个实现 OAuth2 身份验证的简单例子。
app.get('/auth/patreon/', (req, res) => { const scope = 'users pledges-to-me campaigns webhooks'; // 访问范围 const state = 'random-state-string'; // 随机字符串 const url = patreonAPI.oauthClient.getAuthorizeUrl(scope, 'http://localhost:3000/oauth/callback', state); res.redirect(url); });
这段代码将用户重定向到 Patreon 的授权页面。用户授权后,Patreon 将重定向到 http://localhost:3000/oauth/callback
,并带上一个授权令牌。
接下来,我们需要在授权后处理来自 Patreon 的重定向请求,并在请求中包含你的授权令牌。以下是一个处理授权的例子:
-- -------------------- ---- ------- -------------------------- ----- ---- -- - ----- - ----- ----- - - ---------- ----- ----------- - ------------------------------------------- ---------------------------------------- -- ----------- ------- --------------------- - ------------------------- ------------------ ---
在这个例子中,我们使用 code
和之前设置的 redirectUri
从 Patreon 获取访问令牌,然后将它保存在数据库中。
5. 调用 Patreon API
我们已经让用户成功授权了我们的应用程序访问他们的 Patreon 资源。接下来,我们需要了解如何使用 patreon-api
调用一些 API。
获取当前用户信息
在授权用户的情况下,我们可以使用以下代码获取当前用户信息:
patreonAPI('/current_user', req.session.authToken) .then((response) => { console.log(response); // 用户信息 }) .catch((error) => { console.log(error.message); });
current_user
端点返回当前授权用户的信息。我们需要将访问令牌作为第二个参数传递给 patreonAPI
方法。
获取创作者的限制级别
Patreon 允许创作者设置不同的奖励和内容,这些奖励和内容需要根据用户目前的资格进行限制。使用以下代码获取创作者的限制级别:
patreonAPI(`/campaigns/${campaignId}/pledges?include=patron.null&fields%5Bpledge%5D=declined_since%2Cis_paused%2Ccreated_at%2Ctotal_historical_amount_cents%2Camount_cents%2Ccurrently_entitled_amount_cents%2Cpatron_pays_fees`, authToken) .then((response) => { console.log(response); // 应答数据 }) .catch((error) => { console.log(error.message); });
其中 campaignId
是创作者的 ID。pledges
端点返回特定创作者的所有赞助者的信息,包括他们当前的订阅级别。
6. 结论
我们在这篇文章中介绍了如何使用 patreon-api
npm 包连接 Patreon API,并在 Node.js 应用程序中调用各种端点。我们了解了如何实现 OAuth2 身份验证和获取基本信息。对于那些想要为他们的 Patreon 创造更好的体验的开发者来说,这全部都是非常重要的知识。
在实践中,我们可以使用其他的端点和工具来处理 Patreon API 返回的数据。使用该 npm 包可以帮助你更容易地构建 Patreon 集成,并使你的应用可以更直接地连接到 Patreon 的 API。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60065b40c6eb7e50355dbcab