소개
- Native format에서 X API v2로 (Standard v1.1)
- Native Enriched에서 X API v2로 (Enterprise)
- Activity Streams에서 X API v2로 (Enterprise)
전반적인 차이점
객체와 필드 요청
업데이트된 JSON 설계
- JSON 루트 수준에서 기존 표준 엔드포인트는 Post 객체를 statuses 배열에 담아 반환하는 반면, X API v2는 data 배열에 담아 반환합니다.
- 리트윗(Retweeted) 및 인용(Quoted) “statuses”를 사용하던 대신, X API v2 JSON은 리트윗된 Tweet과 인용된 Tweet을 참조합니다. contributors, user.translator_type와 같은 많은 레거시 및 사용 중단된 필드는 제거되고 있습니다.
- Post 객체의 favorites와 user 객체의 favourites를 모두 사용하던 것과 달리, X API v2는
like라는 용어만 사용합니다. - X는 값이 없는 JSON 값(예: null)은 페이로드에 포함하지 않는 규칙을 채택하고 있습니다. Post 및 user 속성은 null이 아닌 값을 가질 때에만 포함됩니다.
새로운 v2 필드
- conversation_id 필드
- context 및 entities를 포함하는 두 개의 새로운 annotations 필드
- 여러 개의 새로운 metrics 필드
- 해당 게시물에 누가 답글을 달 수 있는지 보여주는 새로운 reply_setting 필드
표준 v1.1 데이터 형식에서 v2로 마이그레이션하기
표준 v1.1 vs v2 페이로드 구조
| v1.1 구조 | v2 구조 | |
|---|---|---|
| 기본값 | { “entities”: { “hashtags”: [], “symbols”: [], “user_mentions”: [], “urls”: [], “media”: [] }, “extended_entities”: , “user”: , “place”: , “retweeted_status/quoted_status” } | { “data”: [{ “id”, “text”, “edit_history_tweet_ids” }] } |
| 정의된 field 및 expansions 매개변수 포함 시 | { “data”: [{ “entities”: { “hashtags”: [], “cashtags”: [], “mentions”: [], “urls”: [], }, “attachments”: { “media_keys”: [], “poll_ids”: [] } }], “includes”: [ “tweets”: [ “users”: [ “media”: [ “places”: [ “polls”: [ ], “matching_rules”: [] } |
Tweet 객체
| Twitter 1.1 형식 | Twitter v2 형식 | 필수 v2 매개변수 |
| created_at | data.created_at | tweet.fields=created_at |
| id | 해당 없음 — id는 문자열입니다 | |
| id_str | data.id | 기본값 |
| text | data.text | 기본값 |
| full_text | 해당 없음 — text에 전체 텍스트가 포함됩니다 | |
| truncated | 해당 없음 — text에 전체 텍스트가 포함됩니다 | |
| display_text_range | 해당 없음 — text에 전체 텍스트가 포함됩니다 | |
| edit_history | data.edit_history_tweet_ids | 기본값 |
| edit_controls | data.edit_controls | tweet.fields=edit_controls |
| editable | data.edit_controls.is_edit_eligible | tweet.fields=edit_controls |
| entities | data.entities | tweet.fields=entities |
| entities.user_mentions | data.entities.mentions | tweet.fields=entities |
| entities.symbols | data.entities.cashtags | tweet.fields=entities |
| entities.hashtags | data.entities.hashtags | tweet.fields=entities |
| entities.urls | data.entities.urls | tweet.fields=entities |
| entities.media | includes.media | expansions=attachments.media_keys |
| extended_entities | data.attachments | tweet_fields=attachments |
| in_reply_to_status_id | 해당 없음 — referenced_tweets.id는 문자열입니다 | |
| in_reply_to_status_id_str | data.referenced_tweets.id (if type=replied_to) | expansions=referenced_tweets.id |
| in_reply_to_user_id | 해당 없음 — in_reply_to_user_id는 문자열입니다 | |
| in_reply_to_user_id_str | data.in_reply_to_user_id | tweet.fields=in_reply_to_user_id |
| in_reply_to_screen_name | includes.users..username | tweet.fields=in_reply_to_user_id&expansions=entities.mentions.username |
| user | includes.users | expansions=author_id |
| geo | data.geo.place_id | tweet.fields=geo |
| coordinates | data.geo.place_id | expansions=geo.place_id |
| place | data.geo.place_id | expansions=geo.place_id |
| retweeted_status | data.referenced_tweets.id (if type=retweeted) | expansions=referenced_tweets.id |
| is_quoted_status | 지원되지 않음 | |
| quoted_status_id | 해당 없음 — referenced_tweets.id는 문자열입니다 | |
| quoted_status_id_str | data.referenced_tweets.id (if type=quoted) | expansions=referenced_tweets.id |
| quoted_status_permalink | 지원되지 않음 | |
| quoted_status | data.referenced_tweets (if type=quoted) | expansions=referenced_tweets.id |
| retweet_count | data.public_metrics.retweet_count | tweet.fields=public_metrics |
| favorite_count | data.public_metrics.like_count | tweet.fields=public_metrics |
| favorited | 지원되지 않음 | |
| retweeted | 지원되지 않음 | |
| possibly_sensitive | data.possibly_sensitive | tweet.fields=possibly_sensitive |
| lang | data.lang | tweet.fields=lang |
| scopes | 지원되지 않음 | |
| withheld | data.withheld | tweet.fields=withheld |
| v1.1의 Tweet 객체 예제 URI (매개변수 포함): https://api.x.com/1.1/statuses/lookup.json?id=1359554366051504129&tweet_mode=extended | Tweet 객체 및 v2 요청 매개변수 포함 예시 URI: https://api.x.com/2/tweets?ids=1359554366051504129&tweet.fields=attachments,author_id,context_annotations,conversation_id,created_at,entities,geo,id,in_reply_to_user_id,lang,possibly_sensitive,public_metrics,referenced_tweets,reply_settings,text,withheld |
| { “created_at”: “Wed Feb 10 17:26:34 +0000 2021”, “id”: 1359554366051504129, “id_str”: “1359554366051504129”, “text”: “마음껏 강아지 계정을 하나 더 팔로우하세요. 우리는 평가하지 않을게요. \n\n새로운 …에 대한 manage follows 엔드포인트를 소개합니다 https://t.co/3cBZKZUevF”, “truncated”: true, “entities”: { “hashtags”: [], “symbols”: [], “user_mentions”: [], “urls”: [{ “url”: “https://t.co/3cBZKZUevF”, “expanded_url”: “https://twitter.com/i/web/status/1359554366051504129”, “display_url”: “twitter.com/i/web/status/1…”, “indices”: [ 111, 134 ] }] }, “in_reply_to_status_id”: null, “in_reply_to_status_id_str”: null, “in_reply_to_user_id”: null, “in_reply_to_user_id_str”: null, “in_reply_to_screen_name”: null, “user”: { … }, “geo”: null, “coordinates”: null, “place”: null, “contributors”: null, “is_quote_status”: false, “retweet_count”: 18, “favorite_count”: 98, “favorited”: false, “retweeted”: false, “possibly_sensitive”: false, “possibly_sensitive_appealable”: false, “lang”: “en” } | { “data”: [{ “id”:“1359554366051504129”, “텍스트”:“다른 강아지 계정을 팔로우해도 괜찮습니다. 우리는 판단하지 않습니다. \n\n새로운 #TwitterAPI에 팔로우 관리 엔드포인트를 소개합니다. 이제 v2 API를 사용하여 계정을 팔로우하고 언팔로우할 수 있습니다. 자세히 알아보기 https://t.co/mtpd9VIMDa”, “lang”:“en”, “conversation_id”:“1359554366051504129”, “possibly_sensitive”: false, “답글_설정”:“everyone”, “생성일_at”:“2021-02-10T17:26:34.000Z”, “author_id”:“2244994945”, “public_메트릭”:{ “retweet_count”: 18, “답글_count”: 11, “like_count”: 98, “인용 트윗_count”: 7 }, “entities”:{ “hashtags”: [{ “시작”: 110, “end”: 121, “태그”:“TwitterAPI” }], “urls”: [{ “시작”: 194, “end”: 217, “url”:“https://t.co/mtpd9VIMDa”, “확장된_url”:“https://devcommunity.x.com/t/introducing-the-new-manage-follows-endpoints-to-the-twitter-api-v2/149465”, “display_url”:“devcommunity.com/t/introducing-…”, “images”: [{ “url”:“https://pbs.twimg.com/news_img/1359554367905427457/DczC72__?format=jpg&name=orig”, “width”: 1200, “height”: 630 }, { “url”:“https://pbs.twimg.com/news_img/1359554367905427457/DczC72__?format=jpg&name=150x150”, “width”: 150, “height”: 150 } ], “status”: 200, “title”:“X API v2의 새로운 팔로우 관리 엔드포인트 소개”, “설명”:“팔로우할까, 말까? 이제 X API v2를 사용하여 원하는 대로 이 질문에 답할 수 있습니다. 오늘 새로운 팔로우 관리 엔드포인트가 새로운 Twitter API에 출시되었음을 발표하게 되어 기쁩니다. 한 달 조금 전에 팔로우 조회 엔드포인트를 출시하면서 예고했듯이, 팔로우 관계를 관리하는 기능이 드디어 제공됩니다. 이는 v1.1 API에서 가장 인기 있는 엔드포인트 중 일부이므로, X API v2에서 다양한 사용 사례를 지원하게 되어 기쁩니다. W…”, “unwound_url”:“https://devcommunity.x.com/t/introducing-the-new-manage-follows-endpoints-to-the-twitter-api-v2/149465” }] }, “context_어노테이션”: [{ “domain”:{ “id”:“46”, “name”:“브랜드 카테고리”, “설명”:“브랜드 버티컬 내에서 브랜드 범위를 세분화하는 카테고리” }, “entity”:{ “id”:“781974596752842752”, “name”:“서비스” } }, { “domain”:{ “id”:“47”, “name”:“브랜드”, “설명”:“브랜드 및 회사” }, “entity”:{ “id”:“10045225402”, “name”:“Twitter” } } ] }] } |
User 객체
| Twitter 1.1 형식 | Twitter v2 형식 | 필수 v2 매개변수 |
| user_id | data.author_id | tweet.fields=author_id |
| user.id | N/A - includes.users.id 사용 | |
| user.id_str | includes.users.id | expansions=author_id |
| user.name | includes.users.name | expansions=author_id |
| user.screen_name | includes.user.username | expansions=author_id |
| user.location | includes.users.location | expansions=author_id&user.fields=location |
| user.description | includes.users.description | expansions=author_id&user.fields=description |
| user.url | includes.users.url | expansions=author_id&user.fields=entities |
| user.entities | includes.users.entities | |
| user.entities.url.urls.url | includes.users.entities.url.urls.url | |
| user.entities.url.urls.expanded_url | includes.users.entities.url.urls.expanded_url | expansions=author_id&user.fields=entities |
| user.entities.url.urls.display_url | includes.users.entities.url.urls.display_url | expansions=author_id&user.fields=entities |
| user.entities.url.urls.display_url.indicies[0] | includes.users.entities.url.urls.start | expansions=author_id&user.fields=entities |
| user.entities.url.urls.display_url.indicies[1] | includes.users.entities.url.urls.end | expansions=author_id&user.fields=entities |
| user.protected | includes.users.protected | expansions=author_id&user.fields=protected |
| user.followers_count | includes.users.public_metrics.followers_count | expansions=author_id&user.fields=public_metrics |
| user.friends_count | includes.users.public_metrics.following_count | expansions=author_id&user.fields=public_metrics |
| user.listed_count | includes.users.public_metrics.listed_count | expansions=author_id&user.fields=public_metrics |
| user.created_at | includes.users.created_at | expansions=author_id&user.fields=created_at |
| user.favourites_count | ||
| user.verified | includes.users.verified | expansions=author_id&user.fields=verified |
| user.statuses_count | includes.users.public_metrics.tweet_count | expansions=author_id&user.fields=public_metrics |
| user.profile_image_url_https | includes.users.profile_image_url | expansions=author_id&user.fields=profile_image_url |
| v1.1의 사용자 객체 | v2에서의 User 객체 및 요청 방법 |
| ”user”:{ “id”: 2244994945, “id_str”:“2244994945”, “name”:“Twitter Dev”, “화면_name”:“TwitterDev”, “location”:“127.0.0.1”, “description”:“#TwitterDev 팀의 목소리이자 #TwitterAPI 관련 업데이트, 뉴스 및 이벤트에 대한 공식 소스입니다.”, “url”:“https://t.co/3ZX3TNiZCY”, “entities”:{ “url”:{ “urls”: [{ “url”:“https://t.co/3ZX3TNiZCY”, “확장된_url”:“https://developer.x.com/ko/community”, “display_url”:“developer.x.com/ko/community”, “indices”: [ 0, 23 ] }] }, “description”:{ “urls”: [] } }, “protected”: false, “팔로워_count”: 517232, “친구들_count”: 2032, “리스트 등록됨_count”: 1722, “생성일_at”:“Sat Dec 14 04:35:55 +0000 2013”, “favourites_count”: 2134, “utc_offset”: null, “time_zone”: null, “geo_enabled”: true, “verified”: true, “statuses_count”: 3677, “lang”: null, “기여자_enabled”: false, “이_번역기”: false, “이_번역_enabled”: false, “profile_배경_color”:“FFFFFF”, “profile_배경_이미지_url”:“http://abs.twimg.com/images/themes/theme1/bg.png”, “profile_배경_이미지_url_https”:“https://abs.twimg.com/images/themes/theme1/bg.png”, “profile_배경_타일”: false, “profile_이미지_url”:“http://pbs.twimg.com/profile_images/1354494203451961345/d8HkZl6p_normal.jpg”, “profile_이미지_url_https”:“https://pbs.twimg.com/profile_images/1354494203451961345/d8HkZl6p_normal.jpg”, “profile_banner_url”:“https://pbs.twimg.com/profile_banners/2244994945/1611792896”, “profile_링크_color”:“0084B4”, “profile_sidebar_border_color”:“FFFFFF”, “profile_sidebar_fill_color”:“DDEEF6”, “profile_텍스트_color”:“333333”, “profile_사용_배경_이미지”: false, “has_extended_profile”: true, “기본값_profile”: false, “기본값_profile_이미지”: false, “following”: null, “follow_요청_발송됨”: null, “notifications”: null, “번역기_type”:“regular” } | { “data”: [{ “author_id”: “2244994945”, “id”: “1362876655061073928”, “text”: “우리 거실에서 여러분의 거실까지 🐱💻🛋️ 우리 개발자 옹호 담당자들이 새로운 #TwitterAPI를 시작하는 데 도움이 될 흥미로운 Twitch 스트림과 온라인 이벤트를 준비해 두었습니다. 자세한 내용은 일정을 확인하시고, 더 보고 싶으신 것이 있다면 알려 주세요!\n👇\nhttps://t.co/cixDY9qkvH” }], “includes”: { “users”: [{ “public_metrics”: { “followers_count”: 517233, “following_count”: 2034, “tweet_count”: 3677, “listed_count”: 1727 }, “username”: “TwitterDev”, “entities”: { “url”: { “urls”: [{ “start”: 0, “end”: 23, “url”: “https://t.co/3ZX3TNiZCY”, “expanded_url”: “https://developer.x.com/en/community”, “display_url”: “developer.x.com/en/community” }] }, “description”: { “hashtags”: [{ “start”: 17, “end”: 28, “tag”: “TwitterDev” }, { “start”: 105, “end”: 116, “tag”: “TwitterAPI” } ] } }, “description”: “#TwitterDev 팀의 목소리이자 #TwitterAPI 관련 업데이트, 뉴스 및 이벤트에 대한 공식 정보 출처입니다.”, “name”: “Twitter Dev”, “verified”: true, “location”: “127.0.0.1”, “id”: “2244994945”, “protected”: false, “url”: “https://t.co/3ZX3TNiZCY”, “profile_image_url”: “https://pbs.twimg.com/profile_images/1354494203451961345/d8HkZl6p_normal.jpg”, “created_at”: “2013-12-14T04:35:55.000Z” }] } } |
엔티티 및 확장 엔티티 객체
| Twitter 1.1 format | Twitter v2 format | Required v2 parameters | Type in v2 |
| entities | data.entities | tweet.fields=entities | object |
| entities.hashtags | data.entities.hashtags | tweet.fields=entities | array of objects |
| entities.hashtags.indices[0] | data.entities.hashtags.start | tweet.fields=entities | number |
| entities.hashtags.indices[1] | data.entities.hashtags.end | tweet.fields=entities | number |
| entities.hashtags.text | data.entities.hashtags.tag | tweet.fields=entities | string |
| entities.urls | data.entities.urls | tweet.fields=entities | array of objects |
| entities.urls.indices[0] | data.entities.urls.start | tweet.fields=entities | number |
| entities.urls.indices[1] | data.entities.urls.end | tweet.fields=entities | number |
| entities.urls.url | data.entities.urls.url | tweet.fields=entities | string |
| entities.user_mentions | data.entities.mentions | tweet.fields=entities | array of objects |
| entities.user_mentions.indicies[0] | data.entities.mentions.start | tweet.fields=entities | number |
| entities.user_mentions.indicies[1] | data.entities.mentions.end | tweet.fields=entities | number |
| entities.user_mentions.screen_name | data.entities.mentions.username | tweet.fields=entities | string |
| entities.symbols | data.entities.cashtags | tweet.fields=entities | array of objects |
| entities.symbols.indices[0] | data.entities.cashtags.start | tweet.fields=entities | number |
| entities.symbols.indices[1] | data.entities.cashtags.end | tweet.fields=entities | number |
| entities.symbols.text | data.entities.cashtags.tag | tweet.fields=entities | string |
| entities.media | includes.media | expansions=attachments.media_keys | array of objects |
| entities.media.id_str | includes.media.media_key | expansions=attachments.media_keys | string |
| entities.media.type | includes.media.media.type | expansions=attachments.media_keys | string |
| entities.media.media_url | 해당 없음. includes.media.url 사용 | string | |
| entities.media.media_url_https | includes.media.url | expansions=attachments.media_keys&media.fields=url | string |
| entities.media.url | |||
| entities.media.display_url | |||
| entities.media.expanded_url | |||
| entities.media.media_url_https | includes.media.preview_image_url | expansions=attachments.media_keys&media.fields=preview_image_url | string |
| extended_entities | data.attachments | tweet_fields=attachments | object |
| extended_entities | data.attachments.media_keys | tweet.fields=attachments | array of objects |
| extended_entities.media | includes.media | expansions=attachments.media_keys | array of objects |
| extended_entities.media.id_str | includes.media.media_key | expansions=attachments.media_keys | string |
| extended_entities.media.type | includes.media.media.type | expansions=attachments.media_keys | string |
| extended_entities.media.sizes.thumb.w | 지원되지 않음 | ||
| extended_entities.media.sizes.thumb.h | 지원되지 않음 | ||
| extended_entities.media.sizes.thumb.resize | 지원되지 않음 | ||
| extended_entities.media.sizes.large.w | includes.media.height | expansions=attachments.media_keys&media.fields=height | |
| extended_entities.media.sizes.large.h | includes.media.width | expansions=attachments.media_keys&media.fields=width | |
| extended_entities.media.sizes.large.resize | 지원되지 않음 | ||
| extended_entities.media.sizes.small.w | 지원되지 않음 | ||
| extended_entities.media.sizes.small.h | 지원되지 않음 | ||
| extended_entities.media.sizes.small.resize | 지원되지 않음 | ||
| extended_entities.media.sizes.medium.w | 지원되지 않음 | ||
| extended_entities.media.sizes.medium.h | 지원되지 않음 | ||
| extended_entities.media.sizes.medium.resize | 지원되지 않음 | ||
| extended_entities.media.media_url_https | includes.media.url | expansions=attachments.media_keys&media.fields=url | string |
| extended_entities.media.media_url_https | includes.media.preview_image_url | expansions=attachments.media_keys&media.fields=preview_image_url | string |
| extended_entities.media.video_info.duration_millis | includes.media.duration_ms | expansions=attachments.media_keys&media.fields=duration_ms | number |
| v1.1의 엔티티 및 확장 엔티티 (비디오 포함) | v2의 entities, attachments 및 includes https://api.x.com/2/tweets?ids=1370161532013735937&expansions=attachments.media_keys,entities.mentions.username&tweet.fields=entities&user.fields=created_at,description,entities,location,name,profile_image_url,protected,public_metrics,url,username,verified,withheld&media.fields=duration_ms,height,media_key,preview_image_url,public_metrics,type,url,width |
| ”entities”:{ “hashtags”: [{ “text”:“test”, “indices”: [ 8, 13 ] }], “symbols”: [], “user_mentions”: [{ “화면_name”:“TwitterDev”, “name”:“Twitter Dev”, “id”: 2244994945, “id_str”:“2244994945”, “indices”: [ 31, 42 ] }], “urls”: [{ “url”:“https://t.co/XVLZ3uwikc”, “확장됨_url”:“https://developer.x.com/en”, “display_url”:“developer.x.com/en”, “indices”: [ 91, 114 ] }], “media”: [{ “id”: 1370161464028196868, “id_str”:“1370161464028196868”, “indices”: [ 115, 138 ], “media_url”:“http://pbs.twimg.com/ext_tw_video_thumb/1370161464028196868/pu/img/cGLCoXBHVktkwlC5.jpg”, “media_url_https”:“https://pbs.twimg.com/ext_tw_video_thumb/1370161464028196868/pu/img/cGLCoXBHVktkwlC5.jpg”, “url”:“https://t.co/dz4oByygWA”, “display_url”:“pic.x.com/dz4oByygWA”, “expanded_url”:“https://twitter.com/furiouscamper/status/1370161532013735937/video/1”, “type”:“photo”, “sizes”:{ “thumb”:{ “w”: 150, “h”: 150, “resize”:“crop” }, “small”:{ “w”: 383, “h”: 680, “resize”:“fit” }, “large”:{ “w”: 720, “h”: 1280, “resize”:“fit” }, “medium”:{ “w”: 675, “h”: 1200, “resize”:“fit” } } }] }, “extended_entities”:{ “media”: [{ “id”: 1370161464028196868, “id_str”:“1370161464028196868”, “indices”: [ 115, 138 ], “media_url”:“http://pbs.twimg.com/ext_tw_video_thumb/1370161464028196868/pu/img/cGLCoXBHVktkwlC5.jpg”, “media_url_https”:“https://pbs.twimg.com/ext_tw_video_thumb/1370161464028196868/pu/img/cGLCoXBHVktkwlC5.jpg”, “url”:“https://t.co/dz4oByygWA”, “display_url”:“pic.x.com/dz4oByygWA”, “확장_url”:“https://twitter.com/furiouscamper/status/1370161532013735937/video/1”, “type”:“video”, “sizes”:{ “thumb”:{ “w”: 150, “h”: 150, “resize”:“crop” }, “small”:{ “w”: 383, “h”: 680, “resize”:“fit” }, “large”:{ “w”: 720, “h”: 1280, “resize”:“fit” }, “medium”:{ “w”: 675, “h”: 1200, “resize”:“fit” } }, “video_참고”:{ “가로세로 비율_비율”: [ 9, 16 ], “duration_밀리초”: 5140, “variants”: [{ “비트레이트”: 950000, “내용_type”:“video/mp4”, “url”:“https://video.twimg.com/ext_tw_video/1370161464028196868/pu/vid/480x852/rAuFVMEqs0MeP4P4.mp4?tag=12” }, { “비트레이트”: 2176000, “content_type”:“video/mp4”, “url”:“https://video.twimg.com/ext_tw_video/1370161464028196868/pu/vid/720x1280/ZxVL5qYO-DNVuSyq.mp4?tag=12” }, { “content_type”:“application/x-mpegURL”, “url”:“https://video.twimg.com/ext_tw_video/1370161464028196868/pu/pl/EGVpuZpo-wYxTNCq.m3u8?tag=12” }, { “비트레이트”: 632000, “content_type”:“video/mp4”, “url”:“https://video.twimg.com/ext_tw_video/1370161464028196868/pu/vid/320x568/M7VtocAwKPFdkqzF.mp4?tag=12” } ] }, “추가적인_media_참고”:{ “수익화 가능 여부”: false } }] } | { “data”: [{ “entities”:{ “hashtags”: [{ “start”: 8, “end”: 13, “태그”:“test” }], “mentions”: [{ “start”: 31, “end”: 42, “username”:“TwitterDev” }], “urls”: [{ “start”: 91, “end”: 114, “url”:“https://t.co/XVLZ3uwikc”, “확장됨_url”:“https://developer.x.com/en”, “display_url”:“developer.x.com/ko”, “status”: 200, “title”:“사용 사례, 튜토리얼,&문서화”, “설명”:“게시하기&Tweet 분석, 광고 최적화,&Twitter API, Twitter Ads API를 사용하여 고유한 고객 경험을 만들고,&Twitter for Websites. Let’구축을 시작하세요.”, “전개된_url”:“https://developer.x.com/en” }, { “start”: 115, “종료”: 138, “url”:“https://t.co/dz4oByygWA”, “확장됨_url”:“https://x.com/furiouscamper/status/1370161532013735937/video/1”, “display_url”:“pic.x.com/dz4oByygWA” } ] }, “id”:“1370161532013735937”, “텍스트”:“비디오와 @TwitterDev 멘션이 포함된 또 다른 #test입니다. 새로운 형식 마이그레이션 문서가 기대됩니다! https://t.co/XVLZ3uwikc https://t.co/dz4oByygWA”, “attachments”:{ “media_키(keys)”: [ “7_1370161464028196868” ] } }], “includes”:{ “media”: [{ “type”:“video”, “height”: 1280, “public_metrics”:{ “보기_count”: 37 }, “width”: 720, “media_key”:“7_1370161464028196868”, “duration_ms”: 5140, “미리보기_image_url”:“https://pbs.twimg.com/ext_tw_video_thumb/1370161464028196868/pu/img/cGLCoXBHVktkwlC5.jpg” }], “users”: [{ “public_metrics”:{ “팔로워_count”: 517233, “팔로우_count”: 2034, “tweet_count”: 3677, “리스트에 등록됨_count”: 1727 }, “생성일_at”:“2013-12-14T04:35:55.000Z”, “프로필_image_url”:“https://pbs.twimg.com/profile_images/1354494203451961345/d8HkZl6p_normal.jpg”, “설명”:“#TwitterDev 팀의 목소리이자 #TwitterAPI 관련 업데이트, 뉴스 및 이벤트에 대한 공식 소스입니다.”, “verified”: true, “id”:“2244994945”, “username”:“TwitterDev”, “protected”: false, “entities”:{ “url”:{ “urls”: [{ “시작”: 0, “end”: 23, “url”:“https://t.co/3ZX3TNiZCY”, “확장됨_url”:“https://developer.x.com/en/community”, “display_url”:“developer.x.com/en/community” }] }, “설명”:{ “hashtags”: [{ “시작”: 17, “end”: 28, “태그”:“TwitterDev” }, { “시작”: 105, “끝”: 116, “태그”:“TwitterAPI” } ] } }, “url”:“https://t.co/3ZX3TNiZCY”, “name”:“Twitter Dev”, “location”:“127.0.0.1” }] } } |
장소 객체
| Twitter 1.1 형식 | Twitter v2 형식 | 필수 v2 파라미터 |
| place | data.geo.place_id | tweet.fields=geo |
| place.id | includes.places.id | expansions=geo.place_id |
| place.id.place_type | includes.places.place_type | expansions=geo.place_id&place.fields=place_type |
| place.id.name | includes.places.name | expansions=geo.place_id&place.fields=name |
| place.id.full_name | includes.places.full_name | expansions=geo.place_id |
| place.id.country_code | includes.places.country_code | expansions=geo.place_id&place.fields=country_code |
| place.id.country | includes.places.country | expansions=geo.place_id&place.fields=country |
| place.id.contained_within | includes.places.contained_within | expansions=geo.place_id&place.fields=contained_within |
| place.id.bounding_box.type | includes.places.geo.type | expansions=geo.place_id&place.fields=place_type |
| place.id.bounding_box.coordinates | includes.places.geo.bbox | expansions=geo.place_id&place.fields=geo |
| place.id.attributes | includes.places.properties | expansions=geo.place_id&place.fields=geo |
| v1.1의 Place 객체 | v2의 Place 객체 https://api.x.com/2/tweets?ids=1370161532013735937&expansions=geo.place_id&tweet.fields=geo&place.fields=contained_within,country,country_code,full_name,geo,id,name,place_type |
| ”place”: { “id”: “f7eb2fa2fea288b1”, “url”: “https://api.x.com/1.1/geo/id/f7eb2fa2fea288b1.json”, “place_type”: “city”, “name”: “Lakewood”, “full_name”: “Lakewood, CO”, “country_code”: “US”, “country”: “United States”, “contained_within”: [], “bounding_box”: { “type”: “Polygon”, “coordinates”: [ [ [ -105.193475, 39.60973 ], [ -105.053164, 39.60973 ], [ -105.053164, 39.761974 ], [ -105.193475, 39.761974 ] ] ] }, “attributes”: } | { “data”: [{ “id”: “1370161532013735937”, “text”: “Another #test with a video and @TwitterDev mention. Excited for new format migration docs! https://t.co/XVLZ3uwikc https://t.co/dz4oByygWA”, “geo”: { “place_id”: “f7eb2fa2fea288b1” } }], “includes”: { “places”: [{ “name”: “Lakewood”, “place_type”: “city”, “full_name”: “Lakewood, CO”, “id”: “f7eb2fa2fea288b1”, “geo”: { “type”: “Feature”, “bbox”: [ -105.193475, 39.60973, -105.053164, 39.761974 ], “properties”: }, “country_code”: “US”, “country”: “United States” }] } |
- 필드에 대해 자세히 알아보기
- expansions에 대해 자세히 알아보기
- 필드와 expansions를 함께 사용하는 방법에 대해 자세히 알아보기
Native Enriched 데이터 포맷에서 v2로 마이그레이션
- JSON 루트 레벨에서 Native Enriched 포맷은 Tweet 객체를 results 배열로 반환하는 반면, X API v2는 data 배열로 반환합니다.
- Tweet 객체의 favorites와 user 객체의 favourites를 모두 사용하는 대신, X API v2는 like라는 용어만 사용합니다.
- X는 값이 없는 JSON 값(예: null)은 payload에 기록하지 않는 규칙을 채택하고 있습니다. Tweet 및 user 속성은 null이 아닌 값을 가질 때만 포함됩니다.
- v2의 모든 id 필드는 문자열(string) 형식입니다.
- conversation_id
- reply_settings
- 미디어의 alt_text
- context 및 entities를 포함한 두 개의 새로운 annotations 필드
- 여러 개의 새로운 metrics 필드
- 여러 개의 새로운 polls 필드
- contributors
- 특정 entities.media 및 extended_entities.media 필드
- filter_level
- timestamp_ms
- truncated
Native Enriched vs v2 페이로드 구조
| Native Enriched 구조 | v2 구조 | |
|---|---|---|
| 기본값 | { “user”: , “place”: , “entities”: { “hashtags”: [], “urls”: [], “user_mentions”: [], “symbols”: [], “annotations”: [], “media”: [] }, “extended_entities”: , “matching_rules”: [] } | { “data”: [{ “id”, “text”, “edit_history_tweet_ids” }] } |
| 정의된 field and expansion 매개변수가 있는 경우 | { “data”: [{ “entities”: { “hashtags”: [], “cashtags”: [], “mentions”: [], “urls”: [], }, “attachments”: { “media_keys”: [], “poll_ids”: [] } }], “includes”: [ “tweets”: [ “users”: [ “media”: [ “places”: [ “polls”: [ ], “matching_rules”: [] } |
Tweet 객체
| Native Enriched 형식 | Twitter v2 형식 | 필수 v2 파라미터 | v2에서의 type |
| created_at | data.created_at | tweet.fields=created_at | 문자열 |
| id | 해당 없음 - id를 참조 | ||
| id_str | data.id | 기본값 | 문자열 |
| text | data.text | 기본값 | 문자열 |
| edit_history | data.edit_history_tweet_ids | 기본값 | 배열 |
| edit_controls | data.edit_controls | tweet.fields=edit_controls | 객체 |
| editable | data.edit_controls.is_edit_eligible | tweet.fields=edit_controls | 불리언 |
| display_text_range | 해당 없음 - 전체 텍스트가 text에 포함됨 | ||
| source | data.source | tweet.fields=source | 문자열 |
| truncated | 해당 없음 - 전체 텍스트가 text에 포함됨 | ||
| 지원되지 않음 | data.conversation_id | tweet.fields=conversation_id | 문자열 |
| 지원되지 않음 | data.reply_settings | tweet.fields=reply_settings | String |
| in_reply_to_status_id | 해당 없음 - referenced_tweets.id를 참조하세요 | ||
| in_reply_to_status_id_str | data.referenced_tweets.id (type=replied_to 인 경우) | expansions=referenced_tweets.id | String |
| in_reply_to_user_id | 해당 없음 - in_reply_to_user_id_str를 참조하세요 | ||
| in_reply_to_user_id_str | data.in_reply_to_user_id | tweet.fields=in_reply_to_user_id | String |
| in_reply_to_screen_name | includes.users..username | tweet.fields=in_reply_to_user_id&expansions=entities.mentions.username | String |
| user | includes.users | expansions=author_id | Object |
| user.id_str | data.author_id | tweet.fields=author_id | String |
| geo | data.geo.place_id | tweet.fields=geo | |
| coordinates | data.geo.place_id | tweet.fields=geo | |
| place | data.geo.place_id | tweet.fields=geo | |
| is_quoted_status | data.referenced_tweets.id (type=quoted 인 경우) | tweet.fields=referenced_tweets | String |
| extended_tweet.full_text | 해당 없음 - text에는 전체 텍스트가 포함됩니다 | ||
| 해당 없음 | data.public_metrics | tweet.fields=public_metrics | 객체(Object) |
| quote_count | data.public_metrics.quote_count | tweet.fields=public_metrics | 정수(Int) |
| reply_count | data.public_metrics.reply_count | tweet.fields=public_metrics | 정수(Int) |
| retweet_count | data.public_metrics.retweet_count | tweet.fields=public_metrics | 정수(Int) |
| favorite_count | data.public_metrics.like_count | tweet.fields=public_metrics | 정수(Int) |
| 해당 없음 | data.non_public_metrics | tweet.fields=non_public_metrics | 객체(Object) |
| 해당 없음 | data.non_public_metrics.impression_count | tweet.fields=non_public_metrics | 정수(Int) |
| 해당 없음 | data.non_public_metrics.url_link_count | tweet.fields=non_public_metrics | 정수(Int) |
| 해당 없음 | data.non_public_metrics.user_profile_count | tweet.fields=non_public_metrics | 정수(Int) |
| 해당 없음 | data.organic_metrics | tweet.fields=organic_metrics | 객체 |
| 제공되지 않음 | data.organic_metrics.like_count | tweet.fields=organic_metrics | Int |
| 제공되지 않음 | data.organic_metrics.retweet_count | tweet.fields=organic_metrics | Int |
| 제공되지 않음 | data.organic_metrics.reply_count | tweet.fields=organic_metrics | Int |
| 제공되지 않음 | data.organic_metrics.impression_count | tweet.fields=organic_metrics | Int |
| 제공되지 않음 | data.organic_metrics.url_link_count | tweet.fields=organic_metrics | Int |
| 제공되지 않음 | data.organic_metrics.user_profile_count | tweet.fields=organic_metrics | Int |
| 제공되지 않음 | data.promoted_metrics | tweet.fields=promoted_metrics | 객체 |
| 제공되지 않음 | data.promoted_metrics.like_count | tweet.fields=promoted_metrics | Int |
| 제공되지 않음 | data.promoted_metrics.retweet_count | tweet.fields=promoted_metrics | Int |
| 제공되지 않음 | data.promoted_metrics.reply_count | tweet.fields=promoted_metrics | Int |
| 해당 없음 | data.promoted_metrics.impression_count | tweet.fields=promoted_metrics | Int |
| 해당 없음 | data.promoted_metrics.url_link_count | tweet.fields=promoted_metrics | Int |
| 해당 없음 | data.promoted_metrics.user_profile_count | tweet.fields=promoted_metrics | Int |
| 기여자 | 해당 없음 | 해당 없음 | |
| 엔터티 | data.entities | tweet.fields=entities | Object |
| entities.user_mentions | data.entities.mentions | tweet.fields=entities | 객체 배열 |
| entities.symbols | data.entities.cashtags | tweet.fields=entities | 객체 배열 |
| entities.hashtags | data.entities.hashtags | tweet.fields=entities | 객체 배열 |
| entities.urls | data.entities.urls | tweet.fields=entities | 객체 배열 |
| entities.media | includes.media | expansions=attachments.media_keys | 객체 배열 |
| entities.annotations | tweet.fields=entities,context_annotations | 객체 | |
| entities.annotations.context | data.context_annotations | tweet.fields=entities,context_annotations | 객체 배열 |
| 해당 없음 | data.context_annotations.domain | tweet.fields=context_annotations | 객체 |
| entities.annotations.context.context_domain_id_str | data.context_annotations.domain.id | tweet.fields=context_annotations | 문자열 |
| entities.annotations.context.context_domain_id | 제공되지 않습니다 | 제공되지 않습니다. 문자열 형식은 data.context_annotations.domain.id를 참조하세요 | |
| entities.annotations.context.context_domain_name | data.context_annotations.domain.name | tweet.fields=context_annotations | 문자열 |
| entities.annotations.context.context_domain_description | data.context_annotations.domain.description | tweet.fields=context_annotations | 문자열 |
| 해당 없음 | data.context_annotations.entity | tweet.fields=context_annotations | 객체 |
| entities.annotations.context.context_entity_id_str | data.context_annotations.entity.id | tweet.fields=context_annotations | 문자열 |
| entities.annotations.context.context_entity_id | 제공되지 않습니다 | 제공되지 않습니다. 문자열 형식은 data.context_annotations.entity.id를 참조하세요 | |
| entities.annotations.context.context_entity_name | data.context_annotations.entity.name | tweet.fields=context_annotations | 문자열 |
| entities.annotations.context.context_entity_description | data.context_annotations.entity.description | tweet.fields=context_annotations | 문자열 |
| entities.annotations.entity | data.entities.annotations | tweet.fields=entities,context_annotations | 객체 배열 |
| extended_entities | data.attachments | tweet.fields=attachments | 객체 |
| favorited | 제공되지 않음 | 제공되지 않음 | |
| retweeted | 제공되지 않음 | 제공되지 않음 | |
| retweeted_status | |||
| possibly_sensitive | data.possibly_sensitive | tweet.fields=possibly_sensitive | 불리언 값 |
| lang | data.lang | tweet.fields=lang | 문자열 |
| filter_level | 제공되지 않음 | 제공되지 않음 | |
| scopes | 제공되지 않음 | 제공되지 않음 | |
| timestamp_ms | 제공되지 않음 | 제공되지 않음 | |
| withheld | data.withheld | tweet.fields=withheld | 객체 배열 |
| matching_rules | matching_rules | 객체 배열 | |
| matching_rules.id | 제공되지 않음 | 제공되지 않음 | |
| matching_rules.id_str | matching_rules.id | 필터 스트림의 기본값 | 문자열 |
| matching_rules.tag | matching_rules.tag | 필터 스트림의 기본값 | 문자열 |
User 객체
| 네이티브 Enriched 데이터 형식 | Twitter v2 포맷 | 필수 v2 파라미터 | v2의 type |
| user | includes.users | expansions=author_id | 객체 배열 |
| user.id | 제공되지 않음 | 해당 없음 - includes.users.id 참조 | 문자열 |
| user.id_str | includes.users.id | expansions=author_id | 문자열 |
| user.name | includes.users.name | expansions=author_id | 문자열 |
| user.screen_name | includes.users.username | expansions=author_id | 문자열 |
| user.location | includes.users.location | expansions=author_id&user.fields=location | 객체 |
| user.description | includes.users.description | expansions=author_id&user.fields=description | 문자열 |
| 제공되지 않음 | includes.users.url | expansions=author_id&user.fields=url | 문자열 |
| user.followers_count | includes.users.public_metrics.followers_count | expansions=author_id&user.fields=public_metrics | 정수 |
| user.friends_count | includes.users.public_metrics.following_count | expansions=author_id&user.fields=public_metrics | 정수 |
| user.listed_count | includes.users.public_metrics.listed_count | expansions=author_id&user.fields=public_metrics | Int |
| user.created_at | includes.users.created_at | expansions=author_id&user.fields=created_at | String |
| user.favourites_count | 제공되지 않음 | ||
| user.verified | includes.users.verified | expansions=author_id&user.fields=verified | Boolean |
| user.pinned_tweet_id | includes.users.pinned_tweet_id | expansions=author_id&user.fields=pinned_tweet_id | String |
| user.statuses_count | includes.users.public_metrics.tweet_count | expansions=author_id&user.fields=public_metrics | Int |
| user.profile_image_url_https | includes.users.profile_image_url | expansions=author_id&user.fields=profile_image_url | String |
| user.translator_type | 제공되지 않음 | 제공되지 않음 | |
| user.utc_offset | 제공되지 않음 | 제공되지 않음 | |
| user.time_zone | 제공되지 않음 | 제공되지 않음 | |
| user.geo_enabled | 제공되지 않음 | 제공되지 않음 | |
| user.lang | 제공되지 않음 | 제공되지 않음 - Tweet 언어를 기준으로 추론됨 | |
| user.contributors_enabled | 제공되지 않음 | 제공되지 않음 | |
| user.is_translator | 제공되지 않음 | 제공되지 않음 | |
| user.profile_background_color | 제공되지 않음 | 제공되지 않음 | |
| user.profile_background_image_url | 제공되지 않음 | 제공되지 않음 | |
| user.profile_background_image_url_https | 제공되지 않음 | 제공되지 않음 | |
| user.profile_background_title | 제공되지 않음 | 제공되지 않음 | |
| user.profile_sidebar_border_color | 제공되지 않음 | 제공되지 않음 | |
| user.profile_sidebar_fill_color | 제공되지 않음 | 제공되지 않음 | |
| user.profile_text_color | 제공되지 않음 | 제공되지 않음 | |
| user.profile_user_background_image | 제공되지 않음 | 제공되지 않음 | |
| user.profile_image_url | includes.user.profile_image_url을 참조 | ||
| user.default_profile | 제공되지 않음 | 제공되지 않음 | |
| user.default_profile_image | 제공되지 않음 | 제공되지 않음 | |
| user.following | 제공되지 않음 | 제공되지 않음 | |
| user.follow_request_sent | 제공되지 않음 | 제공되지 않음 | |
| user.notifications | 제공되지 않음 | 제공되지 않음 | |
| user.withheld_in_countries | includes.users.withheld | expansions=author_id&user.fields=withheld | 객체 |
| user.protected | includes.users.protected | expansions=author_id&user.fields=protected | 부울 값 |
| 제공되지 않음 | includes.users.entities | expansions=author_id&user.fields=entities | 객체 |
| 제공되지 않음 | includes.users.entities.url | expansions=author_id&user.fields=entities | 객체 |
| 제공되지 않음 | includes.users.entities.url.urls | expansions=author_id&user.fields=entities | 객체 배열 |
| 제공되지 않음 | includes.users.entities.url.urls.start | expansions=author_id&user.fields=entities | 정수 |
| 제공되지 않음 | includes.users.entities.url.urls.end | expansions=author_id&user.fields=entities | 정수 |
| 제공되지 않음 | includes.users.entities.url.urls.url | expansions=author_id&user.fields=entities | 문자열 |
| user.url | includes.users.entities.url.urls.expanded_url | expansions=author_id&user.fields=entities | String |
| 해당 없음 | includes.users.entities.url.urls.display_url | expansions=author_id&user.fields=entities | String |
| 해당 없음 | includes.users.entities.descriptions | expansions=author_id&user.fields=entities | 객체 |
| 해당 없음 | includes.users.entities.descriptions.hashtags | expansions=author_id&user.fields=entities | 객체 배열 |
| 해당 없음 | includes.users.entities.descriptions.hashtags.start | expansions=author_id&user.fields=entities | Int |
| 해당 없음 | includes.users.entities.descriptions.hashtags.end | expansions=author_id&user.fields=entities | Int |
| user.description에 포함됨 | includes.users.entities.descriptions.hashtags.tag | expansions=author_id&user.fields=entities | String |
| 해당 없음 | includes.users.entities.descriptions.mentions | expansions=author_id&user.fields=entities | 객체 배열 |
| 해당 없음 | includes.users.entities.descriptions.mentions.start | expansions=author_id&user.fields=entities | Int |
| 해당 없음 | includes.users.entities.descriptions.mentions.end | expansions=author_id&user.fields=entities | Int |
| user.description에 포함되어 있음 | includes.users.entities.descriptions.mentions.username | expansions=author_id&user.fields=entities | 문자열 |
| 제공되지 않음 | includes.users.entities.descriptions.cashtags | expansions=author_id&user.fields=entities | 객체 배열 |
| 제공되지 않음 | includes.users.entities.descriptions.cashtags.start | expansions=author_id&user.fields=entities | 정수 |
| 제공되지 않음 | includes.users.entities.descriptions.cashtags.end | expansions=author_id&user.fields=entities | 정수 |
| user.description에 포함되어 있음 | includes.users.entities.descriptions.cashtags.tag | expansions=author_id&user.fields=entities | 문자열 |
Entities 및 Expanded entities 객체
| Native Enriched 포맷 | Twitter v2 포맷 | v2 필수 매개변수 | v2에서의 type |
| entities | data.entities | tweet.fields=entities | 객체 |
| entities.hashtags | data.entities.hashtags | tweet.fields=entities | 객체 배열 |
| entities.hashtags.indices[0] | data.entities.hashtags.start | tweet.fields=entities | 정수 |
| entities.hashtags.indices[1] | data.entities.hashtags.end | tweet.fields=entities | 정수 |
| entities.hashtags.text | data.entities.hashtags.tag | tweet.fields=entities | 문자열 |
| entities.urls | data.entities.urls | tweet.fields=entities | 객체 배열 |
| entities.urls.indices[0] | data.entities.urls.start | tweet.fields=entities | 정수 |
| entities.urls.indices[1] | data.entities.urls.end | tweet.fields=entities | 정수 |
| entities.urls.url | data.entities.urls.url | tweet.fields=entities | 문자열 |
| entities.urls.expanded_url | data.entities.urls.expanded_url | tweet.fields=entities | 문자열 |
| entities.urls.display_url | data.entities.urls.display_url | tweet.fields=entities | 문자열 |
| entities.urls.unwound.url | data.entities.urls.unwound_url | tweet.fields=entities | 문자열 |
| entities.urls.unwound.status | data.entities.urls.status | tweet.fields=entities | 문자열 |
| entities.urls.unwound.title | data.entities.urls.title | tweet.fields=entities | 문자열 |
| entities.urls.unwound.description | data.entities.urls.description | tweet.fields=entities | 문자열 |
| 해당 없음 | data.entities.urls.images | tweet.fields=entities | 객체 배열 |
| 해당 없음 | data.entities.urls.images.url | tweet.fields=entities | 문자열 |
| 해당 없음 | data.entities.urls.images.width | tweet.fields=entities | 정수 |
| 해당 없음 | data.entities.urls.images.height | tweet.fields=entities | 정수 |
| entities.user_mentions | data.entities.mentions | tweet.fields=entities | 객체 배열 |
| entities.user_mentions.indicies[0] | data.entities.mentions.start | tweet.fields=entities | 정수 |
| entities.user_mentions.indicies[1] | data.entities.mentions.end | tweet.fields=entities | 정수 |
| entities.user_mentions.screen_name | data.entities.mentions.username | tweet.fields=entities | 문자열 |
| entities.symbols | data.entities.cashtags | tweet.fields=entities | 객체 배열 |
| entities.symbols.indices[0] | data.entities.cashtags.start | tweet.fields=entities | 정수 |
| entities.symbols.indices[1] | data.entities.cashtags.end | tweet.fields=entities | 정수 |
| entities.symbols.text | data.entities.cashtags.tag | tweet.fields=entities | 문자열 |
| entities.media OR extended_entities.media | includes.media | expansions=attachments.media_keys | 객체 배열 |
| entities.media.id_str OR extended_entities.media.id_str | includes.media.media_key | expansions=attachments.media_keys | 문자열 |
| entities.media.id OR extended_entities.media.id | 사용할 수 없음 - id는 문자열입니다. | ||
| entities.media.type OR extended_entities.media.type | includes.media.media.type | expansions=attachments.media_keys | 문자열 |
| entities.media.indices OR extended_entities.media.indices | 제공되지 않음 | 제공되지 않음 | |
| 제공되지 않음 | includes.media.alt_text | expansions=attachments.media_keys&media.fields=alt_text | 문자열 |
| entities.media.additional_media_info OR extended_entities.media.additional_media_info | 제공되지 않음 | 제공되지 않음 | |
| entities.media.additional_media_info.monetizable OR extended_entities.media.additional_media_info.monetizable | 제공되지 않음 | 제공되지 않음 | |
| entities.media.media_url OR extended_entities.media.media_url | 해당 없음 - includes.media.url 참조 | 문자열 | |
| entities.media.media_url_https OR extended_entities.media.media_url_https | includes.media.url | expansions=attachments.media_keys&media.fields=url | 문자열 |
| entities.media.url OR extended_entities.media.url | |||
| entities.media.display_url OR extended_entities.media.expanded_url | |||
| entities.media.expanded_url | |||
| entities.media.media_url_https | includes.media.preview_image_url | expansions=attachments.media_keys&media.fields=preview_image_url | 문자열 |
| extended_entities | data.attachments | tweet_fields=attachments | 객체 |
| extended_entities | data.attachments.media_keys | tweet.fields=attachments | 객체 배열 |
| 제공되지 않음 | data.attachments.poll_ids | tweet.fields=attachments | 객체 배열 |
| extended_entities.media.sizes.thumb.w | 제공되지 않음 | ||
| extended_entities.media.sizes.thumb.h | 제공되지 않음 | ||
| extended_entities.media.sizes.thumb.resize | 제공되지 않음 | ||
| extended_entities.media.sizes.large.w | includes.media.height | expansions=attachments.media_keys&media.fields=height | |
| extended_entities.media.sizes.large.h | includes.media.width | expansions=attachments.media_keys&media.fields=width | |
| extended_entities.media.sizes.large.resize | 제공되지 않음 | 제공되지 않음 | |
| extended_entities.media.sizes.small.w | 제공되지 않음 | 제공되지 않음 | |
| extended_entities.media.sizes.small.h | 제공되지 않음 | 제공되지 않음 | |
| extended_entities.media.sizes.small.resize | 제공되지 않음 | 제공되지 않음 | |
| extended_entities.media.sizes.medium.w | 제공되지 않음 | 제공되지 않음 | |
| extended_entities.media.sizes.medium.h | 제공되지 않음 | 제공되지 않음 | |
| extended_entities.media.sizes.medium.resize | 제공되지 않음 | 제공되지 않음 | |
| extended_entities.media.media_url_https | includes.media.preview_image_url | expansions=attachments.media_keys&media.fields=preview_image_url | 문자열 |
| extended_entities.media.video_info.aspect_ratio | 제공되지 않음 | 정의되지 않음 | |
| extended_entities.media.variants | 정의되지 않음 | 정의되지 않음 | |
| extended_entities.media.variants.bitrate | 정의되지 않음 | 정의되지 않음 | |
| extended_entities.media.variants.content_type | 정의되지 않음 | 정의되지 않음 | |
| extended_entities.media.variants.url | 정의되지 않음 | 정의되지 않음 | |
| extended_entities.media.video_info.duration_millis | includes.media.duration_ms | expansions=attachments.media_keys&media.fields=duration_ms | Int |
| 정의되지 않음 | includes.media.public_metrics | expansions=attachments.media_keys&media.fields=public_metrics | Object |
| 정의되지 않음 | includes.media.public_metrics.view_count | expansions=attachments.media_keys&media.fields=public_metrics | Int |
| 정의되지 않음 | includes.media.non_public_metrics | expansions=attachments.media_keys&media.fields=non_public_metrics | Object |
| 정의되지 않음 | includes.media.non_public_metrics.playback_0_count | expansions=attachments.media_keys&media.fields=non_public_metrics | Int |
| 정의되지 않음 | includes.media.non_public_metrics.playback_25_count | expansions=attachments.media_keys&media.fields=non_public_metrics | Int |
| 정의되지 않음 | includes.media.non_public_metrics.playback_50_count | expansions=attachments.media_keys&media.fields=non_public_metrics | 정수 |
| 제공되지 않음 | includes.media.non_public_metrics.playback_75_count | expansions=attachments.media_keys&media.fields=non_public_metrics | 정수 |
| 제공되지 않음 | includes.media.non_public_metrics.playback_100_count | expansions=attachments.media_keys&media.fields=non_public_metrics | 정수 |
| 제공되지 않음 | includes.media.organic_metrics | expansions=attachments.media_keys&media.fields=organic_metrics | 객체 |
| 제공되지 않음 | includes.media.organic_metrics.playback_0_count | expansions=attachments.media_keys&media.fields=organic_metrics | 정수 |
| 제공되지 않음 | includes.media.organic_metrics.playback_25_count | expansions=attachments.media_keys&media.fields=organic_metrics | 정수 |
| 제공되지 않음 | includes.media.organic_metrics.playback_50_count | expansions=attachments.media_keys&media.fields=organic_metrics | 정수 |
| 제공되지 않음 | includes.media.organic_metrics.playback_75_count | expansions=attachments.media_keys&media.fields=organic_metrics | 정수 |
| 제공되지 않음 | includes.media.organic_metrics.playback_100_count | expansions=attachments.media_keys&media.fields=organic_metrics | 정수 |
| 제공되지 않음 | includes.media.organic_metrics.view_count | expansions=attachments.media_keys&media.fields=organic_metrics | 정수 |
| 제공되지 않음 | includes.media.promoted_metric | expansions=attachments.media_keys&media.fields=promoted_metrics | 객체 |
| 제공되지 않음 | includes.media.promoted_metric.playback_0_count | expansions=attachments.media_keys&media.fields=promoted_metrics | 정수형 |
| 제공되지 않음 | includes.media.promoted_metric.playback_25_count | expansions=attachments.media_keys&media.fields=promoted_metrics | 정수형 |
| 제공되지 않음 | includes.media.promoted_metric.playback_50_count | expansions=attachments.media_keys&media.fields=promoted_metrics | 정수형 |
| 제공되지 않음 | includes.media.promoted_metric.playback_75_count | expansions=attachments.media_keys&media.fields=promoted_metrics | 정수형 |
| 제공되지 않음 | includes.media.promoted_metric.playback_100_count | expansions=attachments.media_keys&media.fields=promoted_metrics | 정수형 |
| 제공되지 않음 | includes.media.promoted_metrics.view_count | expansions=attachments.media_keys&media.fields=promoted_metrics | 정수형 |
Place 객체
| Native Enriched 형식 | Twitter v2 형식 | 필수 v2 매개변수 | v2의 type |
| place | includes.places | expansions=geo.place_id | 객체 배열 |
| place.id | includes.places.id | expansions=geo.place_id | 문자열 |
| place.url | 제공되지 않음 | 제공되지 않음 | |
| place.id.place_type | includes.places.place_type | expansions=geo.place_id&place.fields=place_type | 문자열 |
| place.id.name | includes.places.name | expansions=geo.place_id&place.fields=name | 문자열 |
| place.id.full_name | includes.places.full_name | expansions=geo.place_id | 문자열 |
| place.id.country_code | includes.places.country_code | expansions=geo.place_id&place.fields=country_code | 문자열 |
| place.id.country | includes.places.country | expansions=geo.place_id&place.fields=country | 문자열 |
| place.id.contained_within | includes.places.contained_within | expansions=geo.place_id&place.fields=contained_within | 배열 |
| place.id.bounding_box.type | includes.places.geo.type | expansions=geo.place_id&place.fields=place_type | 문자열 |
| place.id.bounding_box.coordinates | includes.places.geo.bbox | expansions=geo.place_id&place.fields=geo | 배열 |
| place.id.attributes | includes.places.properties | expansions=geo.place_id&place.fields=geo | 객체 |
Poll 객체
| 네이티브 Enriched 형식 | Twitter v2 형식 | 필수 v2 매개변수 | v2 타입 |
| entities.polls | includes.polls | expansions=attachments.poll_ids | 객체 배열 |
| 사용 불가 | includes.polls.id | expansions=attachments.poll_ids | 문자열 |
| entities.poll.options | includes.polls.options | expansions=attachments.poll_ids | 객체 배열 |
| entities.polls.options.position | includes.polls.options.position | expansions=attachments.poll_ids | Int |
| entities.polls.options.text | includes.polls.options.label | expansions=attachments.poll_ids | 문자열 |
| 사용 불가 | includes.polls.options.votes | expansions=attachments.poll_ids | Int |
| 사용 불가 | includes.polls.voting_status | expansions=attachments.poll_ids&poll.fields=voting_status | 문자열 |
| entities.polls.duration_minutes | includes.polls.duration_minutes | expansions=attachments.poll_ids&poll.fields=duration_minutes | Int |
| entities.polls.end_datetime | includes.polls.end_datetime | expansions=attachments.poll_ids&poll.fields=end_datetime | 날짜(ISO 8601) |
Activity Streams 데이터 형식에서 v2로 마이그레이션
- JSON 루트 레벨에서 Activity Streams 형식은 results 배열에 Tweet 오브젝트를 반환하는 반면, X API v2는 data 배열을 반환합니다.
- 리트윗 및 인용 “activities”를 참조하는 대신, X API v2 JSON은 리트윗된 Tweet과 인용된 Tweet을 참조합니다.
- Tweet 오브젝트의 favorites 및 user 오브젝트의 favourites를 모두 사용하는 대신, X API v2는 like라는 용어를 사용합니다.
- X는 값이 없는 JSON 필드(예: 값이 null인 경우)는 페이로드에 기록하지 않는 관례를 채택하고 있습니다. Tweet 및 user 오브젝트의 속성은 null이 아닌 값을 가진 경우에만 포함됩니다.
- v2의 모든 id 필드는 문자열 형식입니다.
- conversation_id
- reply_settings
- 미디어의 alt_text
- context 및 entities를 포함한 두 개의 새로운 annotations 필드
- 여러 새로운 metrics 필드
- 여러 새로운 polls 필드
- display_text_range
- generator
- gnip
- link
- objectType
- provider
- twitter_entities.symbols는 data.entities.cashtags로 대체됨
- 특정 twitter_extended_entities.media 및 twitter_entities.media 필드
- twitter_filter_level
- twitterTimeZone
- verb
Tweet 객체
| Activity Streams 데이터 형식 | Twitter v2 포맷 | 필수 v2 매개변수 | v2에서의 type |
| postedTime | data.created_at | tweet.fields=created_at | 날짜(ISO 8601) |
| generator | 제공되지 않음 | 제공되지 않음 | |
| generator.link | 제공되지 않음 | 제공되지 않음 | |
| generator.displayName | data.source | tweet.fields=source | 문자열 |
| twitter_lang | data.lang | tweet.fields=lang | 문자열 |
| 제공되지 않음 | data.conversation_id | tweet.fields=conversation_id | 문자열 |
| 제공되지 않음 | data.reply_settings | tweet.fields=reply_settings | 문자열 |
| 제공되지 않음 | data.possibly_sensitive | tweet.fields=possibly_sensitive | 불리언 |
| 제공되지 않음 | data.withheld | tweet.fields=withheld | 객체 |
| objectType | 제공되지 않음 | 제공되지 않음 | |
| verb | 제공되지 않음 | 제공되지 않음 | |
| provider | 제공되지 않음 | 제공되지 않음 | |
| provider.objectType | 제공되지 않음 | 제공되지 않음 | |
| provider.displayName | 제공되지 않음 | 제공되지 않음 | |
| provider.link | 제공되지 않음 | 제공되지 않음 | |
| link | 제공되지 않음 | 제공되지 않음 | |
| display_text_range | 제공되지 않음 | 제공되지 않음 | |
| object | 제공되지 않음 | 제공되지 않음 | |
| object.objectType | 제공되지 않음 | 제공되지 않음 | |
| object.id | 제공되지 않음 | 제공되지 않음 | |
| object.summary | data.text | 기본값 | String |
| object.edit_history | data.edit_history_tweet_ids | 기본값 | Array |
| object.edit_controls | data.edit_controls | tweet.fields=edit_controls | Object |
| object.editable | data.edit_controls.is_edit_eligible | tweet.fields=edit_controls | Boolean |
| object.link | 제공되지 않음 | 제공되지 않음 | |
| object.postedTime | data.created_at | tweet.fields=created_at | 날짜 (ISO 8601) |
| actor.id에서 유도됨 | data.author_id | tweet.fields=created_at | |
| twitter_filter_level | 제공되지 않음 | 제공되지 않음 | |
| inReplyTo.link의 사용자 이름에서 유도됨 | data.in_reply_to_user_id | tweet.fields=in_reply_to_user_id | String |
| 제공되지 않음 | data.referenced_tweets | tweet.fields=referenced_tweets | 객체 배열 |
| 제공되지 않음 | data.referenced_tweets.type | tweet.fields=referenced_tweets | String |
| inReplyTo.link에서 유도됨 | data.referenced_tweets.id | tweet.fields=referenced_tweets | String |
| 제공되지 않음 | data.attachments | tweet.fields=attachments | Object |
| twitter_entities.media.id_str에서 유도됨 | data.attachments.media_keys | tweet.fields=attachments | Array |
| 해당 없음 | data.attachments.poll_ids | tweet.fields=attachments | 배열 |
| twitter_entities | data.entities | tweet.fields=entities | 객체 |
| 해당 없음 | data.entities.annotations | tweet.fields=entities | 객체 배열 |
| 해당 없음 | data.entities.annotations.start | tweet.fields=entities | 정수 (Int) |
| 해당 없음 | data.entities.annotations.end | tweet.fields=entities | 정수 (Int) |
| 해당 없음 | data.entities.annotations.probability | tweet.fields=entities | 부동 소수점 수 (Float) |
| 해당 없음 | data.entities.annotations.type | tweet.fields=entities | 문자열 (String) |
| 해당 없음 | data.entities.annotations.normalized_text | tweet.fields=entities | 문자열 (String) |
| twitter_entities.urls | data.entities.urls | tweet.fields=entities | 객체 배열 |
| twitter_entities.urls.indices[0] | data.entities.urls.start | tweet.fields=entities | 정수 (Int) |
| twitter_entities.urls.indices[1] | data.entities.urls.end | tweet.fields=entities | 정수 |
| twitter_entities.urls.url | data.entities.urls.url | tweet.fields=entities | 문자열 |
| twitter_entities.urls.expanded_url | data.entities.urls.expanded_url | tweet.fields=entities | 문자열 |
| twitter_entities.urls.display_url | data.entities.urls.display_url | tweet.fields=entities | 문자열 |
| 해당 없음 | data.entities.urls.images | tweet.fields=entities | 객체 배열 |
| 해당 없음 | data.entities.urls.images.url | tweet.fields=entities | 문자열 |
| 해당 없음 | data.entities.urls.images.width | tweet.fields=entities | 정수 |
| 해당 없음 | data.entities.urls.images.height | tweet.fields=entities | 정수 |
| gnip.urls.expanded_status | data.entities.urls.status | tweet.fields=entities | 정수 |
| gnip.urls.expanded_url_title | data.entities.urls.title | tweet.fields=entities | 문자열 |
| gnip.urls.expanded_url_description | data.entities.urls.description | tweet.fields=entities | 문자열 |
| gnip.urls.expanded_url | data.entities.urls.unwound_url | tweet.fields=entities | 문자열 |
| twitter_entities.symbols | data.entities.cashtags | tweet.fields=entities | 객체 배열 |
| twitter_entities.symbols.indices[0] | data.entities.cashtags.start | tweet.fields=entities | 정수 |
| twitter_entities.symbols.indices[1] | data.entities.cashtags.end | tweet.fields=entities | 정수 |
| twitter_entities.symbols.text | data.entities.cashtags.tag | tweet.fields=entities | 문자열 |
| twitter_entities.hashtags | data.entities.hashtags | tweet.fields=entities | 객체 배열 |
| twitter_entities.hashtags.indices[0] | data.entities.hashtags.start | tweet.fields=entities | 정수 |
| twitter_entities.hashtags.indices[1] | data.entities.hashtags.end | tweet.fields=entities | 정수 |
| twitter_entities.hashtags.text | data.entities.hashtags.tag | tweet.fields=entities | 문자열 |
| twitter_entities.user_mentions | data.entities.mentions | tweet.fields=entities | 객체 배열(Object 배열) |
| twitter_entities.user_mentions.indices[0] | data.entities.mentions.start | tweet.fields=entities | 정수(Int) |
| twitter_entities.user_mentions.indices[1] | data.entities.mentions.end | tweet.fields=entities | 정수(Int) |
| twitter_entities.user_mentions.screen_name | data.entities.mentions.tag | tweet.fields=entities | 문자열(String) |
| twitter_entities.user_mentions.id_str | data.entities.mentions.id | tweet.fields=entities | 문자열(String) |
| twitter_entities.user_mentions.id | 해당 없음 | 해당 없음 | |
| 해당 없음 | data.context_annotations | tweet.fields=context_annotations | 객체 배열(Object 배열) |
| 해당 없음 | data.context_annotations.domain | tweet.fields=context_annotations | 객체(Object) |
| 해당 없음 | data.context_annotations.domain.id | tweet.fields=context_annotations | 문자열(String) |
| 해당 없음 | data.context_annotations.domain.name | tweet.fields=context_annotations | 문자열(String) |
| 해당 없음 | data.context_annotations.domain.description | tweet.fields=context_annotations | String |
| 해당 없음 | data.context_annotations.entity | tweet.fields=context_annotations | Object |
| 해당 없음 | data.context_annotations.entity.id | tweet.fields=context_annotations | String |
| 해당 없음 | data.context_annotations.entity.name | tweet.fields=context_annotations | String |
| 해당 없음 | data.context_annotations.entity.description | tweet.fields=context_annotations | String |
| geo | data.geo | tweet.fields=geo | Object |
| location.link에서 파생된 값 | data.geo.place_id | tweet.fields=geo | String |
| 해당 없음 | data.public_metrics | tweet.fields=public_metrics | Object |
| favoritesCount | data.public_metrics.like_count | tweet.fields=public_metrics | Int |
| retweetCount | data.public_metrics.retweet_count | tweet.fields=public_metrics | Int |
| 해당 없음 | data.public_metrics.quote_count | tweet.fields=public_metrics | Int |
| 해당 없음 | data.public_metrics.reply_count | tweet.fields=public_metrics | Int |
| 해당 없음 | data.non_public_metrics | tweet.fields=non_public_metrics | Object |
| 해당 없음 | data.non_public_metrics.impression_count | tweet.fields=non_public_metrics | Int |
| 해당 없음 | data.non_public_metrics.url_link_count | tweet.fields=non_public_metrics | Int |
| 해당 없음 | data.non_public_metrics.user_profile_count | tweet.fields=non_public_metrics | Int |
| 해당 없음 | data.organic_metrics | tweet.fields=organic_metrics | Object |
| 해당 없음 | data.organic_metrics.like_count | tweet.fields=organic_metrics | Int |
| 해당 없음 | data.organic_metrics.retweet_count | tweet.fields=organic_metrics | Int |
| 해당 없음 | data.organic_metrics.reply_count | tweet.fields=organic_metrics | Int |
| 해당 없음 | data.organic_metrics.impression_count | tweet.fields=organic_metrics | Int |
| 제공되지 않음 | data.organic_metrics.url_link_count | tweet.fields=organic_metrics | Int |
| 제공되지 않음 | data.organic_metrics.user_profile_count | tweet.fields=organic_metrics | Int |
| 제공되지 않음 | data.promoted_metrics | tweet.fields=promoted_metrics | Object |
| 제공되지 않음 | data.promoted_metrics.like_count | tweet.fields=promoted_metrics | Int |
| 제공되지 않음 | data.promoted_metrics.retweet_count | tweet.fields=promoted_metrics | Int |
| 제공되지 않음 | data.promoted_metrics.reply_count | tweet.fields=promoted_metrics | Int |
| 제공되지 않음 | data.promoted_metrics.impression_count | tweet.fields=promoted_metrics | Int |
| 제공되지 않음 | data.promoted_metrics.url_link_count | tweet.fields=promoted_metrics | Int |
| 제공되지 않음 | data.promoted_metrics.user_profile_count | tweet.fields=promoted_metrics | Int |
| gnip.profileLocations | 정의되지 않음 | 정의되지 않음 | |
| gnip.profileLocations.address | 정의되지 않음 | 정의되지 않음 | |
| gnip.profileLocations.address.country | 정의되지 않음 | 정의되지 않음 | |
| gnip.profileLocations.address.countryCode | 정의되지 않음 | 정의되지 않음 | |
| gnip.profileLocations.displayName | 정의되지 않음 | 정의되지 않음 | |
| gnip.profileLocations.geo | 정의되지 않음 | 정의되지 않음 | |
| gnip.profileLocations.geo.coordinates | 정의되지 않음 | 정의되지 않음 | |
| gnip.profileLocations.geo.type | 정의되지 않음 | 정의되지 않음 | |
| gnip.profileLocations.objectType | 정의되지 않음 | 정의되지 않음 |
User 객체
| Activity Streams 데이터 형식 | Twitter v2 형식 | v2 필수 매개변수 | v2에서의 type |
| actor | includes.users | expansions=author_id | 객체 배열 |
| actor.id에서 파생됨 | includes.users.id | expansions=author_id | 문자열 |
| actor.displayName | includes.users.name | expansions=author_id | 문자열 |
| actor.preferredUsername | includes.users.username | expansions=author_id | 문자열 |
| actor.postedTime | includes.users.created_at | expansions=author_id&user.fields=created_at | 날짜 (ISO 8601) |
| actor.summary | includes.users.description | expansions=author_id&user.fields=description | 문자열 |
| 제공되지 않음 | includes.users.pinned_tweet_id | expansions=author_id&user.fields=pinned_tweet_id | 문자열 |
| 제공되지 않음 | includes.users.protected | expansions=author_id&user.fields=protected | 불리언 |
| actor.link | 제공되지 않음 | 제공되지 않음 - includes.users.username을 기반으로 구성됨 | |
| actor.twitterTimeZone | 제공되지 않음 | 제공되지 않음 - Tweet의 created_at에서 추론됨 | |
| actor.utcOffset | 제공되지 않음 | 제공되지 않음 - Tweet의 created_at 값에서 추론됨 | |
| actor.favoritesCount | 제공되지 않음 | 제공되지 않음 | |
| actor.followersCount | includes.users.public_metrics.followers_count | expansions=author_id&user.fields=public_metrics | Int |
| actor.friendsCount | includes.users.public_metrics.following_count | expansions=author_id&user.fields=public_metrics | Int |
| actor.listedCount | includes.users.public_metrics.listed_count | expansions=author_id&user.fields=public_metrics | Int |
| actor.statusesCount | includes.users.public_metrics.tweet_count | expansions=author_id&user.fields=public_metrics | Int |
| actor.languages[] | 제공되지 않음 | 제공되지 않음 - Tweet의 lang 값에서 추론됨 | |
| actor.location.displayName | includes.users.location | expansions=author_id&user.fields=location | String |
| actor.image | includes.users.profile_image_url | expansions=author_id&user.fields=profile_image_url | String |
| actor.links | includes.users.url | expansions=author_id&user.fields=url | String |
| actor.verified | includes.users.verified | expansions=author_id&user.fields=verified | Boolean |
| 제공되지 않음 | includes.users.withheld | expansions=author_id&user.fields=withheld | 객체 |
| 해당 없음 | includes.users.entities | expansions=author_id&user.fields=entities | 객체 |
| 해당 없음 | includes.users.entities.url | expansions=author_id&user.fields=entities | 객체 |
| actor.links | includes.users.entities.url.urls | expansions=author_id&user.fields=entities | 객체 배열 |
| 해당 없음 | includes.users.entities.url.urls.start | expansions=author_id&user.fields=entities | Int |
| 해당 없음 | includes.users.entities.url.urls.end | expansions=author_id&user.fields=entities | Int |
| 해당 없음 | includes.users.entities.url.urls.url | expansions=author_id&user.fields=entities | 문자열 |
| actor.links.href | includes.users.entities.url.urls.expanded_url | expansions=author_id&user.fields=entities | 문자열 |
| 해당 없음 | includes.users.entities.url.urls.display_url | expansions=author_id&user.fields=entities | 문자열 |
| 해당 없음 | includes.users.entities.description | expansions=author_id&user.fields=entities | 객체 |
| 해당 없음 | includes.users.entities.description.hashtags | expansions=author_id&user.fields=entities | 객체 배열 |
| 해당 없음 | includes.users.entities.description.hashtags.start | expansions=author_id&user.fields=entities | 정수 |
| 해당 없음 | includes.users.entities.description.hashtags.end | expansions=author_id&user.fields=entities | 정수 |
| 해당 없음 | includes.users.entities.description.hashtags.tag | expansions=author_id&user.fields=entities | 문자열 |
| 해당 없음 | includes.users.entities.description.mentions | expansions=author_id&user.fields=entities | 객체 배열 |
| 해당 없음 | includes.users.entities.description.mentions.start | expansions=author_id&user.fields=entities | 정수 |
| 해당 없음 | includes.users.entities.description.mentions.end | expansions=author_id&user.fields=entities | 정수 |
| 해당 없음 | includes.users.entities.description.mentions.username | expansions=author_id&user.fields=entities | 문자열 |
| 해당 없음 | includes.users.entities.description.cashtags | expansions=author_id&user.fields=entities | 객체 배열 |
| 해당 없음 | includes.users.entities.description.cashtags.start | expansions=author_id&user.fields=entities | 정수 |
| 해당 없음 | includes.users.entities.description.cashtags.end | expansions=author_id&user.fields=entities | 정수형(Int) |
| 해당 없음 | includes.users.entities.description.cashtags.tag | expansions=author_id&user.fields=entities | 문자열(String) |
Poll 객체
| Activity Streams 형식 | Twitter v2 형식 | 필수 v2 매개변수 | v2 타입 |
| 제공되지 않음 | includes.polls | expansions=attachments.poll_ids | 객체 배열 |
| 제공되지 않음 | includes.polls.id | expansions=attachments.poll_ids | 문자열 |
| 제공되지 않음 | includes.polls.options | expansions=attachments.poll_ids | 객체 배열 |
| 제공되지 않음 | includes.polls.options.position | expansions=attachments.poll_ids | Int |
| 제공되지 않음 | includes.polls.options.label | expansions=attachments.poll_ids | 문자열 |
| 제공되지 않음 | includes.polls.options.votes | expansions=attachments.poll_ids | Int |
| 제공되지 않음 | includes.polls.voting_status | expansions=attachments.poll_ids&poll.fields=voting_status | 문자열 |
| 제공되지 않음 | includes.polls.duration_minutes | expansions=attachments.poll_ids&poll.fields=duration_minutes | Int |
| 제공되지 않음 | includes.polls.end_datetime | expansions=attachments.poll_ids&poll.fields=end_datetime | 날짜 (ISO 8601) |
Place 객체
| Activity Streams 형식 | Twitter v2 형식 | 필수 v2 매개변수 | v2의 type |
| location | includes.places | expansions=geo.place_id | 객체 배열 |
| location.displayName | includes.places.full_name | expansions=geo.place_id | 문자열 |
| location.link에서 파싱된 값 | includes.places.id | expansions=geo.place_id | 문자열 |
| location.name | includes.places.name | expansions=geo.place_id&place.fields=name | 문자열 |
| location.country_code | includes.places.country | expansions=geo.place_id&place.fields=country | 문자열 |
| location.twitter_place_type | includes.places.place_type | expansions=geo.place_id&place.fields=place_type | 문자열 |
| location.twitter_country_code | includes.places.country_code | expansions=geo.place_id&place.fields=country_code | 문자열 |
| location.geo | includes.places.geo | expansions=geo.place_id&place.fields=geo | 객체 |
| location.geo.type | includes.places.geo.type | expansions=geo.place_id&place.fields=geo | 문자열 |
| location.geo.coordinates | includes.places.geo.bbox | expansions=geo.place_id&place.fields=geo | 배열 |
| 제공되지 않음 | includes.places.geo.properties | expansions=geo.place_id&place.fields=geo | 객체 |
미디어 객체
| Activity Streams 포맷 | Twitter v2 형식 | 필수 v2 파라미터 | v2의 type |
| twitter_entities.media OR twitter_extended_entities.media | includes.media | expansions=attachments.media_keys | 객체 배열 |
| twitter_entities.media.id_str OR twitter_extended_entities.media.id_str | includes.media.media_key | expansions=attachments.media_keys | 문자열 |
| twitter_entities.media.id OR twitter_extended_entities.media.id | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.indices OR twitter_extended_entities.media.indices | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.additional_media_info OR twitter_extended_entities.media.additional_media_info | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.additional_media_info.monetizable OR twitter_extended_entities.media.additional_media_info.monetizable | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.media_url OR twitter_extended_entities.media.media_url | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.media_url_https OR twitter_extended_entities.media.media_url_https | includes.media.preview_image_url | expansions=attachments.media_keys&media.fields=preview_image_url | 문자열 |
| twitter_entities.media.url OR twitter_extended_entities.media.url | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.display_url OR twitter_extended_entities.media.display_url | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.expanded_url OR twitter_extended_entities.media.expanded_url | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.type OR twitter_extended_entities.media.type | includes.media.type | expansions=attachments.media_keys | 문자열 |
| twitter_entities.media.sizes OR twitter_extended_entities.media.sizes | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.sizes.thumb OR twitter_extended_entities.media.sizes.thumb | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.sizes.thumb.h OR twitter_extended_entities.media.sizes.thumb.h | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.sizes.thumb.w OR twitter_extended_entities.media.sizes.thumb.w | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.sizes.thumb.resize OR twitter_extended_entities.media.sizes.thumb.resize | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.sizes.small OR twitter_extended_entities.media.sizes.small | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.sizes.small.h OR twitter_extended_entities.media.sizes.small.h | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.sizes.small.w OR twitter_extended_entities.media.sizes.small.w | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.sizes.small.resize OR twitter_extended_entities.media.sizes.small.resize | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.sizes.medium OR twitter_extended_entities.media.sizes.medium | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.sizes.medium.h OR twitter_extended_entities.media.sizes.medium.h | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.sizes.medium.w OR twitter_extended_entities.media.sizes.medium.w | 제공되지 않음 | 제공되지 않음 | |
| twitter_entities.media.sizes.medium.resize OR twitter_extended_entities.media.sizes.medium.resize | 사용할 수 없음 | 사용할 수 없음 | |
| twitter_entities.media.sizes.large OR twitter_extended_entities.media.sizes.large | 사용할 수 없음 | 사용할 수 없음 | |
| twitter_entities.media.sizes.large.h OR twitter_extended_entities.media.sizes.large.h | includes.media.height | expansions=attachments.media_keys&media.fields=height | Int |
| twitter_entities.media.sizes.large.w OR twitter_extended_entities.media.sizes.large.w | includes.media.width | expansions=attachments.media_keys&media.fields=width | Int |
| twitter_entities.media.sizes.large.resize OR twitter_extended_entities.media.sizes.large.resize | 사용할 수 없음 | 사용할 수 없음 | |
| twitter_extended_entities.media.video_info | 사용할 수 없음 | 사용할 수 없음 | |
| twitter_extended_entities.media.video_info.aspect_ratio | 사용할 수 없음 | 사용할 수 없음 | |
| twitter_extended_entities.media.video_info.duration_millis | includes.media.duration_ms | expansions=attachments.media_keys&media.fields=duration_ms | Int |
| twitter_extended_entities.media.video_info.variants | 사용할 수 없음 | 사용할 수 없음 | |
| twitter_extended_entities.media.video_info.variants.bitrate | 사용할 수 없음 | 사용할 수 없음 | |
| twitter_extended_entities.media.video_info.variants.content_type | 사용할 수 없음 | 사용할 수 없음 | |
| twitter_extended_entities.media.video_info.variants.url | 사용할 수 없음 | 사용할 수 없음 | |
| 사용할 수 없음 | includes.media.alt_text | expansions=attachments.media_keys&media.fields=alt_text | 문자열 |
| 지원되지 않음 | includes.media.public_metrics | expansions=attachments.media_keys&media.fields=public_metrics | 객체 |
| 지원되지 않음 | includes.media.public_metrics.view_count | expansions=attachments.media_keys&media.fields=public_metrics | 정수 |
| 지원되지 않음 | includes.media.non_public_metrics | expansions=attachments.media_keys&media.fields=non_public_metrics | 객체 |
| 지원되지 않음 | includes.media.non_public_metrics.playback_0_count | expansions=attachments.media_keys&media.fields=non_public_metrics | 정수 |
| 지원되지 않음 | includes.media.non_public_metrics.playback_25_count | expansions=attachments.media_keys&media.fields=non_public_metrics | 정수 |
| 지원되지 않음 | includes.media.non_public_metrics.playback_50_count | expansions=attachments.media_keys&media.fields=non_public_metrics | 정수 |
| 지원되지 않음 | includes.media.non_public_metrics.playback_75_count | expansions=attachments.media_keys&media.fields=non_public_metrics | 정수 |
| 지원되지 않음 | includes.media.non_public_metrics.playback_100_count | expansions=attachments.media_keys&media.fields=non_public_metrics | 정수 |
| 지원되지 않음 | includes.media.organic_metrics | expansions=attachments.media_keys&media.fields=organic_metrics | 객체 |
| 제공되지 않음 | includes.media.organic_metrics.playback_0_count | expansions=attachments.media_keys&media.fields=organic_metrics | 정수 |
| 제공되지 않음 | includes.media.organic_metrics.playback_25_count | expansions=attachments.media_keys&media.fields=organic_metrics | 정수 |
| 제공되지 않음 | includes.media.organic_metrics.playback_50_count | expansions=attachments.media_keys&media.fields=organic_metrics | 정수 |
| 제공되지 않음 | includes.media.organic_metrics.playback_75_count | expansions=attachments.media_keys&media.fields=organic_metrics | 정수 |
| 제공되지 않음 | includes.media.organic_metrics.playback_100_count | expansions=attachments.media_keys&media.fields=organic_metrics | 정수 |
| 제공되지 않음 | includes.media.organic_metrics.view_count | expansions=attachments.media_keys&media.fields=organic_metrics | 정수 |
| 제공되지 않음 | includes.media.promoted_metrics | expansions=attachments.media_keys&media.fields=promoted_metrics | 객체 |
| 제공되지 않음 | includes.media.promoted_metrics.playback_0_count | expansions=attachments.media_keys&media.fields=promoted_metrics | 정수 |
| 제공되지 않음 | includes.media.promoted_metrics.playback_25_count | expansions=attachments.media_keys&media.fields=promoted_metrics | 정수 |
| 제공되지 않음 | includes.media.promoted_metrics.playback_50_count | expansions=attachments.media_keys&media.fields=promoted_metrics | 정수 |
| 제공되지 않음 | includes.media.promoted_metrics.playback_75_count | expansions=attachments.media_keys&media.fields=promoted_metrics | Int |
| 제공되지 않음 | includes.media.promoted_metrics.playback_100_count | expansions=attachments.media_keys&media.fields=promoted_metrics | Int |
| 제공되지 않음 | includes.media.promoted_metrics.view_count | expansions=attachments.media_keys&media.fields=promoted_metrics | Int |
매칭 규칙 객체
| Activity Streams 형식 | Twitter v2 형식 | 필수 v2 매개변수 | v2에서의 type |
| gnip.matching_rules | matching_rules | 필터링된 스트림에서 기본값 | 객체 배열 |
| gnip.matching_rules.tag | matching_rules.tag | 필터링된 스트림에서 기본값 | 문자열 |
| gnip.matching_rules.tag.id | 제공되지 않음 | 제공되지 않음 | |
| gnip.matching_rules.tag.id_str | matching_rules.id | 필터링된 스트림에서 기본값 | 문자열 |