跳转到主要内容
通过 expansions,开发者可以展开负载中按 ID 引用的对象。例如,Posts 查询 的负载中返回的 referenced_tweets.idauthor_id 字段可以展开为完整对象。若要请求与发布该 Post 的用户,或该 Post 中包含的媒体、投票(poll)或地点(place)相关的字段,您需要在请求中传递相应的 expansion 查询参数,才能在响应中接收这些 data。目前,返回 Posts、Users、Lists、Spaces 和 Direct Message 事件对象的 v2 endpoint 均支持 expansions(见下方示例)。 当您在请求中包含某个 expansion 时,我们会在同一响应中包含该展开对象的默认 fields。这样可以在一次响应中返回更多 data,而无需单独发起其他请求。若您希望请求与该展开对象相关的其他 fields,可以在请求中包含与该展开对象关联的字段参数,并提供以逗号分隔的字段列表,说明您希望在响应中接收的内容。请注意,fields 不一定会按照在 query 中请求的顺序返回。 下面的 Post 负载包含可进一步展开的相关对象的引用 ID,其中包括发布该 Post 的用户的 author_id、一个“被引用”的 Post 的 id,以及媒体附件的 media_key
{
    "data": {
        "attachments": {
            "media_keys": ["16_1211797899316740096"]
        },
        "author_id": "2244994945",
        "id": "1212092628029698048",
        "referenced_tweets": [
            {
                "type": "replied_to",
                "id": "1212092627178287104"
            }
        ],
        "text": "我们相信,我们的 API 最佳的未来版本将来自与大家共同打造。向所有在 Twitter 平台上构建的伙伴致敬,愿新的一年再创佳绩。我们已迫不及待想在新的一年继续与各位合作。https://t.co/yvxdK6aOo2"
    }
}

可用于 Post 负载的 expansions

ExpansionDescription
author_id返回表示该 Post 作者的用户对象
referenced_tweets.id返回该 Post 引用的 Post 对象(可能是转发、引用 Tweet 或回复)
edit_history_tweet_ids返回属于某个 Post 编辑历史的 Post 对象
in_reply_to_user_id返回表示该请求的 Post 所回复之作者的用户对象
attachments.media_keys返回表示该 Post 中包含的图片、视频、GIF 的媒体对象
attachments.poll_ids返回投票对象,包含该 Post 中投票的 metadata
geo.place_id返回地点对象,包含该 Post 中标记位置的 metadata
entities.mentions.username返回该 Post 中被提及用户的用户对象
referenced_tweets.id.author_id返回被引用 Post 作者的用户对象

可用于用户载荷的扩展项

扩展项描述
pinned_tweet_id返回一个 Post 对象,表示置顶在用户个人资料顶部的 Post

适用于私信事件负载的可用 expansions

ExpansionDescription
attachments.media_keys返回附加在私信中的 Media 对象
referenced_tweets.id返回在私信中被引用的 Post 对象
sender_id返回表示私信作者以及邀请参与者加入会话的用户对象
participant_ids返回表示加入或离开会话的参与者的用户对象

Spaces 负载可用的 expansions

Expansion描述
invited_user_ids返回表示受邀账户的用户对象
speaker_ids返回表示在该 Space 中发言账户的用户对象
creator_id返回表示创建该 Space 的账户的用户对象
host_ids返回表示被设为主持人的账户的用户对象
topics_ids返回由创建者设置的主题描述

可用于 List 载荷的扩展项

扩展项描述
owner_id返回一个用户对象,表示创建并维护该 List 的帐号

扩展 Media 对象

在以下请求中,我们请求展开 geo.place_id,使其与默认的 Post fields 一同返回: 示例请求
{`curl 'https://api.x.com/2/tweets/:ID?expansions=geo.place_id' --header 'Authorization: Bearer $ACCESS_TOKEN'`}
示例响应
{`{
  "data": {
      "geo": {
          "place_id": "01a9a39529b27f36"
      },
      "id": "ID",
      "text": "测试"
  },
  "includes": {
      "places": [
          {
              "full_name": "纽约曼哈顿"
              "id": "01a9a39529b27f36"
          }
      ]
  }
}`}

扩展 Poll 对象

在以下请求中,我们通过请求 attachments.poll_ids 的 expansions,将其与默认的 Post fields 一并返回: 示例请求 示例响应
{`{
  "data": {
      "attachments": {
          "poll_ids": ["1199786642468413448"]
      },
      "id": "1199786642791452673",
      "text": "C#"
  },
  "includes": {
      "polls": [
          {
              "id": "1199786642468413448",
              "options": [
                  {
                      "position": 1,
                      "label": "“C Sharp(C 音)”",
                      "votes": 795
                  },
                  {
                      "position": 2,
                      "label": "“C Hashtag(C 井号)”",
                      "votes": 156
                  }
              ]
          }
      ]
  }
}`}

扩展 Place 对象

在下面的请求中,我们通过请求 geo.place_id 的 expansions,将其与默认的 Post fields 一并返回: 示例请求 示例响应
{`{
  "data": {
      "geo": {
          "place_id": "01a9a39529b27f36"
      },
      "id": "ID",
      "text": "测试"
  },
  "includes": {
      "places": [
          {
              "full_name": "纽约曼哈顿"
              "id": "01a9a39529b27f36"
          }
      ]
  }
}`}
I