跳转到主要内容

开始使用用户 Post 和提及时间线端点

本快速入门指南将帮助你使用一组指定的 fields,通过 Postman 向用户 Post 时间线端点发出第一个请求。 如果你想查看不同语言的示例代码,请访问我们的 X API v2 sample code GitHub 代码库。
先决条件要完成本指南,你需要一组用于对请求进行认证的 keys and tokens。你可以按照以下步骤生成这些 keys 和 tokens:
  • 注册开发者账号 并通过审批。
  • 在开发者门户中创建一个 Project 以及关联的 developer App
  • 前往你的应用的“Keys and tokens”页面以生成所需凭证。请务必将所有凭证保存在安全的位置。
构建时间线请求的步骤 在此示例中,我们将向“按 ID 获取用户 Post 时间线”端点发出请求,但你也可以将本快速入门中的方法应用到用户提及时间线的请求中。 步骤一:选择工具或库 有多种工具、代码示例和库可用于向该端点发出请求,但这里我们将使用 Postman 来简化流程。 要将 X API v2 的 Postman 集合加载到你的环境,请点击以下按钮: 在 Postman 中加载 X API v2 集合后,导航到 timeline 文件夹并找到“User Post timeline by ID”请求。   步骤二:为请求进行认证 要正确地向 X API 发出请求,你需要验证权限。对于此端点,你必须使用 OAuth 2.0 App-OnlyOAuth 2.0 Authorization Code with PKCEOAuth 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”列中。
KeyValue
id2244994945
步骤四:确定并指定你希望检索的 fields 如果你在第三步后点击“Send”按钮,你将在响应中收到默认的 Post 对象字段:id 和 text。 如果你希望获取除 id 和 text 之外的更多字段,则需要在请求中通过 field 和/或 expansion 参数显式指定这些字段。 在本练习中,我们将从不同对象请求三组额外字段:
  1. 主体 Tweets 的附加字段:tweet.created_at。
  2. 返回的 Posts 的关联作者用户对象的默认字段:id、name 和 username。
  3. 关联用户对象的附加字段:user.created_at。  
在 Postman 中,切换到 “Params” 选项卡,并在 “Query Params” 表中添加以下键值对:
KeyValueReturned fields
tweet.fieldscreated_attweets.created_at
expansionsauthor_idincludes.users.idincludes.users.nameincludes.users.username
user.fieldscreated_atincludes.users.created_at
max_results5
你现在应该会在 “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 参数的值,其他设置保持不变。 
KeyValue
pagination_tokent3buvdr5pujq9g7bggsnf3ep2ha28
完成这些设置后,你可以再次点击“Send”,即可收到下一页的结果。  我们整理了一份关于分页的指南,进一步阐释这一概念。  后续步骤 使用 API 参考自定义你的请求 向社区寻求帮助