本快速入门指南将帮助你使用一组指定的 fields,通过 Postman 向用户 Post 时间线端点发出第一个请求。
如果你想查看不同语言的示例代码,请访问我们的 X API v2 sample code GitHub 代码库。
构建时间线请求的步骤
在此示例中,我们将向“按 ID 获取用户 Post 时间线”端点发出请求,但你也可以将本快速入门中的方法应用到用户提及时间线的请求中。
步骤一:选择工具或库
有多种工具、代码示例和库可用于向该端点发出请求,但这里我们将使用 Postman 来简化流程。
要将 X API v2 的 Postman 集合加载到你的环境,请点击以下按钮:
在 Postman 中加载 X API v2 集合后,导航到 timeline 文件夹并找到“User Post timeline by ID”请求。
步骤二:为请求进行认证
要正确地向 X API 发出请求,你需要验证权限。对于此端点,你必须使用 OAuth 2.0 App-Only、OAuth 2.0 Authorization Code with PKCE 或 OAuth 1.0a User Context 进行认证。
为简化说明,我们将在此请求中使用 OAuth 2.0 App-Only,但如果你希望请求私有的metrics或 Posts,则需要使用其他认证方式之一。
你必须将 keys 和 tokens(特别是 App Access Token,也称为 App-only Bearer Token)添加到 Postman。你可以在 Postman 右上角选择名为“X API v2”的环境,并将 keys 和 tokens 填入“initial value”和“current value”字段(点击环境下拉菜单旁边的眼睛图标)。
如果设置正确,此变量会自动注入到请求的 authorization 选项卡中。
步骤三:确定并指定要从哪个用户检索 Posts
你必须在请求中指定要检索其最近 Posts 的用户。在本示例中,我们将传入一个用户 id。
用户 id 是表示账号 handle 的数值,你可以在账号的个人资料 URL 中找到。例如,以下账号的用户名是 XDevelopers。
https://x.com/XDevelopers
要将该用户名转换为用户 id,你需要使用带用户名的 users lookup endpoint,并在返回的负载中找到数值型用户 id。以 @XDevelopers 为例,用户 id 为 2244994945。
在 Postman 中,导航到“Params”选项卡,并将该用户 id 输入到 id 参数的“Value”列中。
步骤四:确定并指定你希望检索的 fields
如果你在第三步后点击“Send”按钮,你将在响应中收到默认的 Post 对象字段:id 和 text。
如果你希望获取除 id 和 text 之外的更多字段,则需要在请求中通过 field 和/或 expansion 参数显式指定这些字段。
在本练习中,我们将从不同对象请求三组额外字段:
- 主体 Tweets 的附加字段:tweet.created_at。
- 返回的 Posts 的关联作者用户对象的默认字段:id、name 和 username。
- 关联用户对象的附加字段:user.created_at。
在 Postman 中,切换到 “Params” 选项卡,并在 “Query Params” 表中添加以下键值对:
| | |
|---|
| Key | Value | Returned fields |
tweet.fields | created_at | tweets.created_at |
expansions | author_id | includes.users.id、includes.users.name、includes.users.username |
user.fields | created_at | includes.users.created_at |
| max_results | 5 | |
你现在应该会在 “Send” 按钮旁看到以下 URL:
https://api.x.com/2/users/:id/tweets?tweet.fields=created_at&expansions=author_id&user.fields=created_at&max_results=5
请注意:在 Postman 中,URL 字段中的路径参数 :id 不会自动更新为你在 id 参数字段中输入的值,这就是为什么上面的 URL 包含 :id 而不是 2244994945。
步骤五:发起请求并查看响应
完成所有设置后,点击 “Send” 按钮,你将收到如下响应:
"data": [
{
"author_id": "2244994945",
"created_at": "2020-09-03T17:31:39.000Z",
"id": "1301573587187331074",
"text": "从今天开始,您可以在开发者门户中查看 v2 API 的每月 Tweet 使用情况。✨📊\n\n这会跟踪您从过滤流和近期搜索中收到的 Tweet 数量。在此了解更多信息:https://t.co/nfJHkFRQcZ https://t.co/vFXmoj3qaA"
},
{
"author_id": "2244994945",
"created_at": "2020-09-03T15:43:00.000Z",
"id": "1301546240887398401",
"text": "RT @snowman: 我们使用 Python、Flask、Postgres 和 Heroku 在 X API 上构建了一个实时高尔夫排行榜。\n\n发送"排行榜"私信…"
},
{
"author_id": "2244994945",
"created_at": "2020-09-01T20:07:50.000Z",
"id": "1300888112948752389",
"text": "⛳ 为什么高尔夫球手会多带一件衬衫?以防一杆进洞。\n\n既然我们已经吸引了您的注意,了解 @snowman 和 @johnd 如何使用 #TwitterAPI 构建实时高尔夫排行榜。📖\n\nhttps://t.co/rRKeKmaRrN"
},
{
"author_id": "2244994945",
"created_at": "2020-08-28T23:14:22.000Z",
"id": "1299485505478963200",
"text": "RT @jessicagarson: 在 @ThePracticalDev 上发布了我的第一个关于使用 Twitter API v2 的教程!您将学习如何探索用户的 Tweet…"
},
{
"author_id": "2244994945",
"created_at": "2020-08-21T19:10:05.000Z",
"id": "1296887316556980230",
"text": "了解 @PennMedCDH 如何使用 Twitter 数据来理解 COVID-19 健康危机 📊\n\nhttps://t.co/1tdA8uDWes"
}
],
"includes": {
"users": [
{
"created_at": "2013-12-14T04:35:55.000Z",
"id": "2244994945",
"name": "Twitter Dev",
"username": "TwitterDev"
}
]
},
"meta": {
"newest_id": "1301573587187331074",
"next_token": "t3buvdr5pujq9g7bggsnf3ep2ha28",
"oldest_id": "1296887316556980230",
"previous_token": "t3equkmcd2zffvags2nkj0nhlrn78",
"result_count": 5
}
}
第六步:分页浏览结果
在上一个响应的底部,你会发现一个名为 meta 的对象,其中包含以下字段:
- oldest_id
- newest_id
- results_count
- next_token
- previous_token
在第四步中,我们将 max_results 设为 5,这意味着每页最多返回五条结果。要获取更多页的数据,我们会从上一页结果中取出 next_token 字段的值,并将该字符串作为 Postman 参数页中 pagination_token 参数的值,其他设置保持不变。
| |
|---|
| Key | Value |
pagination_token | t3buvdr5pujq9g7bggsnf3ep2ha28 |
完成这些设置后,你可以再次点击“Send”,即可收到下一页的结果。
我们整理了一份关于分页的指南,进一步阐释这一概念。
后续步骤
使用 API 参考自定义你的请求
向社区寻求帮助