跳转到主要内容

介绍

尽管最近搜索端点仅支持获取过去 7 天内发布的 Post,但用户 Post 时间线与用户提及时间线端点可让你为已授权用户(使用 user id)检索早于 7 天前的 Post 和提及。开发者可以使用这些端点研究来自用户时间线或提及中的主题、实体和情感。在本教程中,我们将展示如何使用用户 Tweet 时间线与用户提及时间线端点来探索某个用户的 Post 和提及。  

先决条件

  • 要使用用户 Tweet 时间线和用户提及时间线端点,您需要拥有一个有效的开发者账户。 
  • 您还需要创建一个Project
  • 您必须已注册开发者账户,并已激活新的开发者门户体验。 
  • 需要具有关联到在开发者门户中创建的Project的开发者应用的有效密钥和令牌,方可访问。
  • 您的应用在X 开发者门户中的 Bearer Token。
  • 如果您还没有获批的开发者账户,可以申请访问

已获批准的开发者账户

如果你尚未拥有,可以在此提交申请

创建 Project 并连接应用

开发者门户中,点击创建新的 Project。
为其命名,选择合适的使用场景,并提供 Project 描述。接下来,你可以创建新的应用,或连接现有的应用(应用是用于保存你的 API key 的容器,你需要它来向 X API 发起 HTTP 请求)。
点击“create a new App instead”,并为你的应用命名以创建新的应用。
点击完成后,你将获得 API key 和 Bearer token,随后即可用于连接 X API v2 的新端点。
点击 API key、API secret key 和 Bearer token 旁的 (+),并将这些值复制到本机的安全位置。你将在下一步进行 API 调用时用到这些信息。 注意:上方截图中的密钥已隐藏,但在你自己的开发者门户中,你将能看到 API key、API secret key 和 Bearer token 的实际值。  

如何获取用户的 user ID,以用于 user Tweet timeline 和 user mention timeline 端点

user Tweet timeline 和 user mention timeline 端点允许你使用 user ID 获取 Posts。要根据用户名获取 user ID,你可以使用新的用户查询端点 v2。将 USER_NAME 替换为你选择的用户名,将 XXXX 替换为你在上方获取的 bearer token
  curl --request GET 'https://api.x.com/2/users/by/username/USER_NAME --header 'Authorization: Bearer XXXXXX'
您会在响应中看到用户 id,如下所示:
{
   "data": {
       "id": "2244994945",
       "name": "Developers",
       "username": "XDevelopers"
   }
}

连接用户 Tweet 时间线和用户提及时间线端点

要获取某个用户的 Tweet 时间线,请在终端运行以下 curl 命令(务必将 USER_ID 替换为目标用户的 user ID,并将 XXXX 替换为你在上文获取的 bearer token)
curl --request GET 'https://api.x.com/2/users/USER_ID/tweets' --header 'Authorization: Bearer XXXXXX'
你会看到,这些请求的 JSON 响应默认包含这些 Post 的 id 和文本(示例如下)。
{
   "id": "1334200897081987072",
   "text": "👀 如果您是 X API v2 新手,请查看这份分步指南来发送您的第一个请求 https://t.co/4rZqThpSbp"
}
如果你希望在响应中返回更多字段(例如用户信息、额外的 Tweet 字段,如上下文注释等),则需要在请求中明确指定这些字段。请参阅使用 fields 和 expansions 的指南了解具体做法。 你也可以使用任意你熟悉的编程语言来获取这些 Post。请在我们的GitHub 代码仓库查看针对用户 Tweet 时间线和用户提及时间线端点的 Python、Node(JavaScript)、Java 和 Ruby 示例代码。

探索用户的 Posts

在你掌握了如何使用 user Tweet timeline 和 user mention timeline 端点获取 Posts 之后,就可以开始探索他们的 Posts 了。比如,如果你想识别某个用户的提及中出现的常见命名实体,可以这样做: 在 API 请求中指定要在 Tweet 响应中返回 context_annotations 对象:
curl --request GET 'https://api.x.com/2/users/USER_ID/mentions?tweet.fields=context_annotations' --header 'Authorization: Bearer XXXXXX'
在响应中,你可以查看提及里是否包含任何命名实体。示例如下:
{
   "domain": {
       "id": "47",
       "name": "品牌",
       "description": "品牌与企业"
   },
   "entity": {
       "id": "783214",
       "name": "X"
   }
}
如果你想查看你的提及中出现了哪些热门实体,可以通过解析提及中的每条 Tweet 来统计这些热门实体。 如果你想获取时间线上所有包含媒体的 Post 的预览图片 URL,可以按以下方式进行: 在 API 请求中,指定在 tweet.media 的 fields 中返回 preview_image_url,并在 expansions 中包含 attachments.media_keys
curl --request GET 'https://api.x.com/2/users/2244994945/mentions?max_results=100&media.fields=preview_image_url&expansions=attachments.media_keys' --header 'Authorization: Bearer XXXXXX'
在响应中,你会在 includes 对象中看到 preview_image_url,如下所示:
{
   "includes": {
       "media": [
           {
               "media_key": "16_1334657439640121344",
               "preview_image_url": "https://pbs.twimg.com/tweet_video_thumb/EoWn3rqU8AAtFWL.jpg",
               "type": "animated_gif"
           }
       ]
   }
}
在你掌握了如何浏览某个用户的 Posts 之后,也可以借助其他 API 和服务对这些 Posts 做更多操作。下面是一些在使用 user Tweet timeline 和 user mention timeline 端点时可随手参考的资源。

资源