1
Fork 0
mirror of https://github.com/thegeneralist01/twitter-openapi synced 2026-01-11 15:40:26 +01:00

add TweetDetail

Signed-off-by: ふぁ <yuki@yuki0311.com>
This commit is contained in:
ふぁ 2023-04-18 19:07:40 +09:00
parent abbcbe8b86
commit a16f4a6915
No known key found for this signature in database
GPG key ID: 83A8A5E74872A8AA
9 changed files with 297 additions and 61 deletions

View file

@ -60,6 +60,8 @@ paths:
$ref: ./path/user.yaml#/paths/~1sLVLhk0bGj3MVFEKTdax1w~1UserByScreenName $ref: ./path/user.yaml#/paths/~1sLVLhk0bGj3MVFEKTdax1w~1UserByScreenName
/tmd4ifV8RHltzn8ymGg1aw/Bookmarks: /tmd4ifV8RHltzn8ymGg1aw/Bookmarks:
$ref: ./path/bookmarks.yaml#/paths/~1tmd4ifV8RHltzn8ymGg1aw~1Bookmarks $ref: ./path/bookmarks.yaml#/paths/~1tmd4ifV8RHltzn8ymGg1aw~1Bookmarks
/wNNG8DBB8EaXw1lq4vFWGA/TweetDetail:
$ref: ./path/tweet.yaml#/paths/~1wNNG8DBB8EaXw1lq4vFWGA~1TweetDetail
/zhX91JE87mWvfprhYE97xA/HomeLatestTimeline: /zhX91JE87mWvfprhYE97xA/HomeLatestTimeline:
$ref: ./path/timeline.yaml#/paths/~1zhX91JE87mWvfprhYE97xA~1HomeLatestTimeline $ref: ./path/timeline.yaml#/paths/~1zhX91JE87mWvfprhYE97xA~1HomeLatestTimeline
/{{FollowersQuery}}/Followers: /{{FollowersQuery}}/Followers:

100
dist/path/tweet.yaml vendored Normal file
View file

@ -0,0 +1,100 @@
components:
schemas:
BookmarksResponseData:
properties:
threaded_conversation_with_injections_v2:
$ref: ./../schemas/timeline.yaml#/components/schemas/Timeline
required:
- threaded_conversation_with_injections_v2
TweetDetailResponse:
properties:
data:
$ref: '#/components/schemas/BookmarksResponseData'
required:
- data
info:
title: Twitter OpenAPI
version: 0.0.1
openapi: 3.0.3
paths:
/wNNG8DBB8EaXw1lq4vFWGA/TweetDetail:
get:
description: get TweetDetail
operationId: getTweetDetail
parameters:
- in: query
name: variables
required: true
schema:
example: '{"focalTweetId": "1349129669258448897", "with_rux_injections":
false, "includePromotedContent": true, "withCommunity": true, "withQuickPromoteEligibilityTweetFields":
true, "withBirdwatchNotes": true, "withVoice": true, "withV2Timeline":
true}'
type: string
- in: query
name: features
required: true
schema:
example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled":
true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled":
true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled":
false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_enabled":
true, "responsive_web_edit_tweet_api_enabled": true, "graphql_is_translatable_rweb_tweet_is_translatable_enabled":
true, "view_counts_everywhere_api_enabled": true, "longform_notetweets_consumption_enabled":
true, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled":
false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled":
false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled":
false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled":
false}'
type: string
- in: query
name: queryId
required: true
schema:
default: wNNG8DBB8EaXw1lq4vFWGA
example: wNNG8DBB8EaXw1lq4vFWGA
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TweetDetailResponse'
description: Successful operation
headers:
x-connection-hash:
schema:
type: string
x-content-type-options:
schema:
type: string
x-frame-options:
schema:
type: string
x-rate-limit-limit:
schema:
type: integer
x-rate-limit-remaining:
schema:
type: integer
x-rate-limit-reset:
schema:
type: integer
x-response-time:
schema:
type: integer
x-tfe-preserve-body:
schema:
type: boolean
x-transaction-id:
schema:
type: string
x-twitter-response-tags:
schema:
type: string
x-xss-protection:
schema:
type: integer
tags:
- bookmark
- graphql

View file

@ -9,6 +9,7 @@ components:
ContentItemType: ContentItemType:
enum: enum:
- TimelineTweet - TimelineTweet
- TimelineTimelineCursor
type: string type: string
ContentUnion: ContentUnion:
discriminator: discriminator:
@ -21,7 +22,72 @@ components:
- $ref: '#/components/schemas/TimelineTimelineItem' - $ref: '#/components/schemas/TimelineTimelineItem'
- $ref: '#/components/schemas/TimelineTimelineCursor' - $ref: '#/components/schemas/TimelineTimelineCursor'
- $ref: '#/components/schemas/TimelineTimelineModule' - $ref: '#/components/schemas/TimelineTimelineModule'
ItemContent: ItemContentUnion:
discriminator:
mapping":
TimelineTimelineCursor: '#/components/schemas/TimelineTimelineCursor'
TimelineTweet: '#/components/schemas/TimelineTweet'
propertyName: itemType
oneOf:
- $ref: '#/components/schemas/TimelineTweet'
- $ref: '#/components/schemas/TimelineTimelineCursor'
ItemResult:
properties:
__typename:
$ref: ./typename.yaml#/components/schemas/TypeName
result:
$ref: ./tweet.yaml#/components/schemas/TweetUnion
required:
- result
TimelineTimelineCursor:
properties:
__typename:
$ref: ./typename.yaml#/components/schemas/TypeName
cursorType:
enum:
- Top
- Bottom
type: string
entryType:
$ref: '#/components/schemas/ContentEntryType'
type: string
itemType:
$ref: '#/components/schemas/ContentEntryType'
type: string
value:
type: string
required:
- __typename
- cursorType
- value
TimelineTimelineItem:
properties:
__typename:
$ref: ./typename.yaml#/components/schemas/TypeName
clientEventInfo:
type: object
entryType:
$ref: '#/components/schemas/ContentEntryType'
type: string
feedbackInfo:
type: object
itemContent:
$ref: '#/components/schemas/ItemContentUnion'
required:
- __typename
- entryType
- itemContent
TimelineTimelineModule:
properties:
__typename:
$ref: ./typename.yaml#/components/schemas/TypeName
entryType:
$ref: '#/components/schemas/ContentEntryType'
type: string
required:
- __typename
- entryType
TimelineTweet:
properties: properties:
__typename: __typename:
$ref: ./typename.yaml#/components/schemas/TypeName $ref: ./typename.yaml#/components/schemas/TypeName
@ -46,58 +112,6 @@ components:
- itemType - itemType
- tweetDisplayType - tweetDisplayType
- tweet_results - tweet_results
ItemResult:
properties:
result:
$ref: ./tweet.yaml#/components/schemas/TweetUnion
required:
- result
TimelineTimelineCursor:
properties:
__typename:
$ref: ./typename.yaml#/components/schemas/TypeName
cursorType:
enum:
- Top
- Bottom
type: string
entryType:
$ref: '#/components/schemas/ContentEntryType'
type: string
value:
type: string
required:
- __typename
- entryType
- cursorType
- value
TimelineTimelineItem:
properties:
__typename:
$ref: ./typename.yaml#/components/schemas/TypeName
clientEventInfo:
type: object
entryType:
$ref: '#/components/schemas/ContentEntryType'
type: string
feedbackInfo:
type: object
itemContent:
$ref: '#/components/schemas/ItemContent'
required:
- __typename
- entryType
- itemContent
TimelineTimelineModule:
properties:
__typename:
$ref: ./typename.yaml#/components/schemas/TypeName
entryType:
$ref: '#/components/schemas/ContentEntryType'
type: string
required:
- __typename
- entryType
info: info:
title: Twitter OpenAPI title: Twitter OpenAPI
version: 0.0.1 version: 0.0.1

View file

@ -5,6 +5,7 @@ components:
- TimelineAddEntries - TimelineAddEntries
- TimelineClearCache - TimelineClearCache
- TimelinePinEntry - TimelinePinEntry
- TimelineTerminateTimeline
type: string type: string
InstructionUnion: InstructionUnion:
discriminator: discriminator:
@ -12,11 +13,13 @@ components:
TimelineAddEntries: '#/components/schemas/TimelineAddEntries' TimelineAddEntries: '#/components/schemas/TimelineAddEntries'
TimelineClearCache: '#/components/schemas/TimelineClearCache' TimelineClearCache: '#/components/schemas/TimelineClearCache'
TimelinePinEntry: '#/components/schemas/TimelinePinEntry' TimelinePinEntry: '#/components/schemas/TimelinePinEntry'
TimelineTerminateTimeline: '#/components/schemas/TimelineTerminateTimeline'
propertyName: type propertyName: type
oneOf: oneOf:
- $ref: '#/components/schemas/TimelineAddEntries' - $ref: '#/components/schemas/TimelineAddEntries'
- $ref: '#/components/schemas/TimelineClearCache' - $ref: '#/components/schemas/TimelineClearCache'
- $ref: '#/components/schemas/TimelinePinEntry' - $ref: '#/components/schemas/TimelinePinEntry'
- $ref: '#/components/schemas/TimelineTerminateTimeline'
TimelineAddEntries: TimelineAddEntries:
properties: properties:
entries: entries:
@ -60,6 +63,19 @@ components:
required: required:
- type - type
- entry - entry
TimelineTerminateTimeline:
properties:
direction:
enum:
- Top
- Bottom
type: string
type:
$ref: '#/components/schemas/InstructionType'
type: string
required:
- type
- direction
info: info:
title: Twitter OpenAPI title: Twitter OpenAPI
version: 0.0.1 version: 0.0.1

View file

@ -261,6 +261,40 @@
"responsive_web_enhance_cards_enabled": false "responsive_web_enhance_cards_enabled": false
} }
}, },
"TweetDetail": {
"Query": "wNNG8DBB8EaXw1lq4vFWGA",
"Variables": {
"focalTweetId": "1349129669258448897",
"with_rux_injections": false,
"includePromotedContent": true,
"withCommunity": true,
"withQuickPromoteEligibilityTweetFields": true,
"withBirdwatchNotes": true,
"withVoice": true,
"withV2Timeline": true
},
"Features": {
"blue_business_profile_image_shape_enabled": true,
"responsive_web_graphql_exclude_directive_enabled": true,
"verified_phone_label_enabled": false,
"responsive_web_graphql_timeline_navigation_enabled": true,
"responsive_web_graphql_skip_user_profile_image_extensions_enabled": false,
"tweetypie_unmention_optimization_enabled": true,
"vibe_api_enabled": true,
"responsive_web_edit_tweet_api_enabled": true,
"graphql_is_translatable_rweb_tweet_is_translatable_enabled": true,
"view_counts_everywhere_api_enabled": true,
"longform_notetweets_consumption_enabled": true,
"tweet_awards_web_tipping_enabled": false,
"freedom_of_speech_not_reach_fetch_enabled": false,
"standardized_nudges_misinfo": true,
"tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": false,
"interactive_text_enabled": true,
"responsive_web_text_conversations_enabled": false,
"longform_notetweets_rich_text_read_enabled": true,
"responsive_web_enhance_cards_enabled": false
}
},
"Template": { "Template": {
"Query": "", "Query": "",
"Variables": {}, "Variables": {},

View file

@ -0,0 +1,36 @@
openapi: 3.0.3
info:
title: Twitter OpenAPI
version: 0.0.1
paths:
/{{TweetDetailQuery}}/TweetDetail:
get:
operationId: getTweetDetail
description: get TweetDetail
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/TweetDetailResponse"
tags:
- "bookmark"
- "graphql"
components:
schemas:
TweetDetailResponse:
required:
- "data"
properties:
data:
$ref: "#/components/schemas/BookmarksResponseData"
BookmarksResponseData:
required:
- "threaded_conversation_with_injections_v2"
properties:
threaded_conversation_with_injections_v2:
$ref: "./../schemas/timeline.yaml#/components/schemas/Timeline"

View file

@ -35,7 +35,7 @@ components:
type: string # enum type: string # enum
$ref: "#/components/schemas/ContentEntryType" # TimelineTimelineItem $ref: "#/components/schemas/ContentEntryType" # TimelineTimelineItem
itemContent: itemContent:
$ref: "#/components/schemas/ItemContent" $ref: "#/components/schemas/ItemContentUnion"
clientEventInfo: clientEventInfo:
type: object # todo type: object # todo
feedbackInfo: feedbackInfo:
@ -44,7 +44,6 @@ components:
TimelineTimelineCursor: TimelineTimelineCursor:
required: required:
- "__typename" - "__typename"
- "entryType"
- "cursorType" - "cursorType"
- "value" - "value"
properties: properties:
@ -52,7 +51,10 @@ components:
$ref: "./typename.yaml#/components/schemas/TypeName" # TimelineTimelineCursor $ref: "./typename.yaml#/components/schemas/TypeName" # TimelineTimelineCursor
entryType: entryType:
type: string # enum type: string # enum
$ref: "#/components/schemas/ContentEntryType" # TimelineTimelineCursor $ref: "#/components/schemas/ContentEntryType" # null | TimelineTimelineCursor
itemType:
type: string # enum
$ref: "#/components/schemas/ContentEntryType" # null | TimelineTimelineCursor
cursorType: cursorType:
type: string type: string
enum: [Top, Bottom] enum: [Top, Bottom]
@ -72,11 +74,22 @@ components:
$ref: "#/components/schemas/ContentEntryType" # TimelineTimelineCursor $ref: "#/components/schemas/ContentEntryType" # TimelineTimelineCursor
# ================= ContentItem ================= # ================= ContentItem =================
ItemContentUnion:
oneOf:
- $ref: "#/components/schemas/TimelineTweet"
- $ref: "#/components/schemas/TimelineTimelineCursor"
discriminator:
propertyName: itemType
mapping": # deprecated
TimelineTweet: "#/components/schemas/TimelineTweet"
TimelineTimelineCursor: "#/components/schemas/TimelineTimelineCursor"
ContentItemType: ContentItemType:
type: string type: string
enum: [TimelineTweet] enum: [TimelineTweet, TimelineTimelineCursor]
ItemContent: TimelineTweet:
required: required:
- "__typename" - "__typename"
- "itemType" - "itemType"
@ -106,5 +119,7 @@ components:
required: required:
- "result" - "result"
properties: properties:
__typename:
$ref: "./typename.yaml#/components/schemas/TypeName" # null | TimelineTweet
result: result:
$ref: "./tweet.yaml#/components/schemas/TweetUnion" $ref: "./tweet.yaml#/components/schemas/TweetUnion"

View file

@ -11,16 +11,24 @@ components:
- $ref: "#/components/schemas/TimelineAddEntries" - $ref: "#/components/schemas/TimelineAddEntries"
- $ref: "#/components/schemas/TimelineClearCache" - $ref: "#/components/schemas/TimelineClearCache"
- $ref: "#/components/schemas/TimelinePinEntry" - $ref: "#/components/schemas/TimelinePinEntry"
- $ref: "#/components/schemas/TimelineTerminateTimeline"
discriminator: discriminator:
propertyName: type propertyName: type
mapping": # deprecated mapping": # deprecated
TimelineAddEntries: "#/components/schemas/TimelineAddEntries" TimelineAddEntries: "#/components/schemas/TimelineAddEntries"
TimelineClearCache: "#/components/schemas/TimelineClearCache" TimelineClearCache: "#/components/schemas/TimelineClearCache"
TimelinePinEntry: "#/components/schemas/TimelinePinEntry" TimelinePinEntry: "#/components/schemas/TimelinePinEntry"
TimelineTerminateTimeline: "#/components/schemas/TimelineTerminateTimeline"
InstructionType: InstructionType:
type: string type: string
enum: [TimelineAddEntries, TimelineClearCache, TimelinePinEntry] enum:
[
TimelineAddEntries,
TimelineClearCache,
TimelinePinEntry,
TimelineTerminateTimeline,
]
TimelineAddEntries: TimelineAddEntries:
required: required:
@ -54,6 +62,18 @@ components:
entry: entry:
$ref: "#/components/schemas/TimelineAddEntry" $ref: "#/components/schemas/TimelineAddEntry"
TimelineTerminateTimeline:
required:
- type
- direction
properties:
type:
type: string
$ref: "#/components/schemas/InstructionType" # TimelineTerminateTimeline
direction:
type: string
enum: [Top, Bottom]
TimelineAddEntry: TimelineAddEntry:
required: required:
- "content" - "content"

View file

@ -29,7 +29,6 @@ components:
Tweet: Tweet:
required: required:
# - "__typename"
- "rest_id" - "rest_id"
- "core" - "core"
- "edit_control" - "edit_control"
@ -40,7 +39,7 @@ components:
properties: properties:
__typename: __typename:
$ref: "./typename.yaml#/components/schemas/TypeName" # Tweet $ref: "./typename.yaml#/components/schemas/TypeName" # null | Tweet
rest_id: rest_id:
type: string type: string
pattern: "^[0-9]+$" pattern: "^[0-9]+$"