上周,我很惊讶地收到一封来自 Twitter 的电子邮件,说我的应用程序因违反服务条款而被暂停。实际发生的事情是,Twitter 开始关闭使用 API v1.1 的免费应用程序,这些应用程序现在为付费客户保留。所以如果你也收到同样的通知,这并不意味着你的应用程序做错了什么,这只是意味着他们希望你切换到 v2 API。
我认为这将是一个相对容易的过渡。不幸的是,Twitter 开发者门户是一堆令人困惑的设置、按钮和选项,我花了一段时间才弄明白。这篇文章将引导您完成我创建一个自动发布推文的新应用程序所采取的步骤。
注意:Twitter 允许对 API 进行自由写访问。如果你想从 API 读取,在大多数情况下你需要一个付费帐户。
申请开发者账号
如果您还没有开发者帐户,请转到开发者站点并单击“开发者门户”。您将看到一个描述 Twitter API 的页面,并要求您以每月 100 美元的价格订阅。在“订阅”按钮下,您会看到“申请免费帐户”,您应该点击该按钮。
接下来,您将被要求描述访问 Twitter API 和接受服务条款的用例。提交表单后,您会立即被带到开发人员门户。
设置您的项目并创建您的应用程序
进入开发人员门户后,您首先需要创建一个项目和一个应用程序。这些是在您从头开始注册免费帐户时自动为您创建的;否则,如果您已经拥有开发者帐户,则需要自行创建。确保将环境设置为生产环境,以便您可以向您的帐户发送推文。
无论哪种方式,您最终都会得到 API 密钥、API 密钥秘密和不记名令牌密钥,您需要保存这些密钥供以后使用。 (为了本文的目的,您实际上不需要 Bearer 令牌。)
设置写入权限(用户身份验证)
如果您只打算从 Twitter API 读取数据,则可以跳过此步骤。否则,下一步是为此应用程序设置用户身份验证。令人困惑的是,即使您只是计划以自己的用户身份发推文并且不会使用他们的 Twitter 凭据登录任何人,您也需要这样做。如果不启用用户身份验证,您将没有对 API 的写入权限。
单击“用户身份验证”下的“设置”,您将被带到另一个页面,其中包含各种需要填写的字段:
- 在“应用程序权限”下选择“读写”
- 在“应用程序类型”下选择“网络应用程序、自动化应用程序或机器人”
- 在“App Info”下提供一个回调 URI 和网站 URL(只要您不在您的应用程序上使用 Twitter 登录,您为这些设置什么并不重要)
- 点击“保存”
此时,您会看到一个显示您的客户端 ID 和客户端密码的屏幕。这用于 Twitter 登录,虽然您应该保存这些以备日后需要,但您不需要它们仅用于 API 访问。
生成您的访问令牌
默认情况下,您的应用程序只能作为应用程序访问 Twitter API,允许的操作非常有限。如果您要设置一个使用 Twitter 登录的应用程序,用户会选择允许额外的访问权限。但是,如果您只想以拥有该应用程序的帐户身份发布推文,则需要生成访问令牌和密码。
在您的应用程序页面顶部,单击“密钥和令牌”并向下滚动到“身份验证令牌”部分。在“Access Token and Secret”旁边,点击“Generate”。您将看到您的访问令牌和密码。 (您可能还会看到与您首次创建应用程序时收到的相同的 API 密钥、API 密钥秘密和不记名令牌。这似乎只是在您第一次生成访问令牌时发生。)
在您的“密钥和令牌”页面上仔细检查创建的访问令牌具有读写权限。
发推特给我们你的信息
完成所有这些设置后,您现在可以通过 v2 API 发送您的第一条推文。您将使用来自应用程序的 API 密钥和 API 密钥密钥以及分配给拥有该应用程序的用户的访问令牌和访问令牌密钥。下面是一个使用优秀的twitter-api-v2
npm 包的例子:
import { TwitterApi } from "twitter-api-v2" ; const client = new TwitterApi ({ // these two values come from your app's API keys appKey: TWITTER_API_KEY , appSecret: TWITTER_API_KEY_SECRET , // these two values come from the user's access tokens accessToken: TWITTER_ACCESS_TOKEN , accessSecret: TWITTER_ACCESS_TOKEN_SECRET }); await client.v2. tweet ( "Hello world from the v2 Twitter API!" );
这样一来,您应该会在几秒钟内看到您的推文。
结论
用于创建和编辑应用程序的开发人员门户有点混乱,并且有很多键需要跟踪。最终,一旦有了您的 API 密钥和访问令牌,您就可以自动发推文了。请记住启用用户身份验证(即使您真的不需要它)并将您的应用程序设置为具有写入权限。快乐的推文!
原文: https://humanwhocodes.com/blog/2023/04/automating-tweets-v2-api/