Olaylar
Zarf
Her olay aynı zarfa sahiptir; d, aşağıda açıklanan türe özgü yükü taşır.
| Alan | Tür | Anlamı |
|---|---|---|
v | int | Zarf sürümü. Bugün 1 |
t | string | Olay türü, aşağıdaki tablodan |
op | create | update | delete | create, update (aynı kimliğin zenginleştirilmesi) veya delete |
id | string | Kararlı kimlik. Yinelenenleri bunun üzerinden ayıklayın |
ts | int (ms) | X'te ne zaman olduğu, epoch'tan bu yana ms. X profil değişikliklerinin, takip etme ve takibi bırakmanın, yeni doğrulanmış takipçilerin ve gönderi silmenin zamanını vermez: bu olaylarda bizim fark ettiğimiz andır |
sid | string | Yeniden oynatma için akış konumu; akışta ve geçmişte bulunur |
target.id | string | İzlenen hesabın sayısal X kimliği (search.match için gönderi yazarınınki) |
target.screen_name | string | İzlenen hesabın kullanıcı adı |
target.name | string | Hesabın görünen adı |
d | object | Türe özgü yük |
Olay türleri
| Tür | Kategori | Anlamı |
|---|---|---|
tweet.create | Gönderiler | Hesap yeni bir şey paylaştı |
tweet.reply | Gönderiler | Birine yanıt verdi; reply_to yanıtlanan gönderiyi metni ve medyasıyla taşır |
tweet.retweet | Gönderiler | Birini yeniden gönderdi; retweet_of özgün gönderiyi eksiksiz taşır |
tweet.quote | Gönderiler | Birini alıntıladı; quoted alıntılanan gönderiyi eksiksiz taşır |
tweet.edit | Gönderiler | Bir gönderiyi düzenledi; olay yeni sürümü, edit_of ise bu sürümün yerini aldığı sürümü taşır |
tweet.delete | Gönderiler | Hesabın yayımlamış olduğu bir gönderi kayboldu |
profile.name | Profil | Görünen ad değişti |
profile.screen_name | Profil | Kullanıcı adı değişti |
profile.bio | Profil | Biyografi değişti |
profile.location | Profil | Konum değişti |
profile.url | Profil | Profil bağlantısı değişti |
profile.avatar | Profil | Avatar değişti; old ve new görsel URL'leridir |
profile.banner | Profil | Banner değişti; old ve new görsel URL'leridir |
profile.pinned | Profil | Sabitlenmiş gönderi değişti; tweet ve old_tweet gönderilerin kendisini taşır |
profile.verified | Profil | Doğrulama rozeti belirdi veya kayboldu |
follow.add | Takip grafiği | Hesap birini takip etmeye başladı; user o hesabın tam profilidir |
follow.remove | Takip grafiği | Hesap birini takip etmeyi bıraktı |
followers.verified.add | Takip grafiği | Doğrulanmış bir hesap onu takip etmeye başladı; user biyografi, sayaçlar, konum ve katılım tarihini taşır |
account.status | Hesap | Hesap korumalı, askıya alınmış veya erişilemez oldu ya da yeniden etkin |
search.match | Arama | Biri anahtar kelimelerinizden biriyle eşleşen bir şey paylaştı; keyword hangisi olduğunu söyler, author o kişinin tam profilidir |
X, "takip etmeye başladı" veya "takipçi kazandı" için zaman damgası sağlamaz; bu yüzden o olaylarda ts, değişikliği fark ettiğimiz andır.
Yükler
Beş yük biçimi on sekiz türün tamamını kapsar.
Tweet yükü
tweet.create, tweet.reply, tweet.retweet ve tweet.quote olaylarının d alanı ve search.match olayının temeli.
| Alan | Tür | Anlamı |
|---|---|---|
tweet_id | string | Gönderinin kimliği, dize olarak |
kind | tweet | reply | retweet | quote | Ne tür bir gönderi olduğu |
text | string | Tam metin (uzun gönderiler dahil) |
lang | string | null | X'in algıladığı dil |
author | User | Gönderiyi yayımlayan hesap, tam bir User nesnesi olarak — search.match yazarıyla aynı nesne: kullanıcı adı, ad, biyografi, avatar, kapak, sayılar, doğrulama, konum, bağlantı ve katılma tarihi. İnce ilk çerçevede hesabın en son okunan hali; update ise gönderiyle birlikte okunan hali taşır |
reply_to | Brief+ | null | Yanıtlar için: yanıtlanan gönderi — bir Özet artı yazarının screen_name, tweet_id ve user_id değerleri |
retweet_of | Brief | null | Yeniden gönderiler için: özgün gönderi |
quoted | Brief | null | Alıntılar için: alıntılanan gönderi |
media | string[] | Düz görsel URL'leri, medya öğesi başına bir tane |
media_items | Media[] | Türü, video varyantları ve boyutlarıyla her medya öğesi |
urls | string[] | Gönderideki genişletilmiş bağlantılar |
article | Article | null | Bir X makalesine bağlantı veren gönderilerde: makale |
counts | {reply, rt, like, quote, bookmark} | Okuduğumuz andaki yanıt, yeniden gönderi, beğeni, alıntı ve yer imi sayıları |
views | int | null | Görüntülenme sayısı, X sunduğunda |
url | string | Gönderinin kanonik bağlantısı |
full | bool | İlk, ince create çerçevesinde false; olay gönderinin tamamını taşıdığında true |
kind_final | bool | kind kesinleştiğinde true. false yalnızca kind değeri tweet olan ince ilk çerçevede görülür: gönderi yine de alıntı çıkabilir ve aynı id ile gelen update bunu kesinleştirir |
kind_was | tweet | null (update only) | Yalnızca gönderinin türünü kesinleştiren update olayında ve yalnızca ilk çerçeve farklı bir tür söylediyse bulunur: o çerçevenin türü (alıntı çıkan bir gönderi için tweet) |
edit_of | Brief | null | tweet.edit olayında: bu sürümün yerini aldığı sürüm (kimliği ve elimizdeyse metni ile yazarı) |
{
"v": 1,
"t": "tweet.create",
"op": "create",
"id": "tweet:2097879002992070835",
"ts": 1789012345678,
"sid": "1789012346012-0",
"target": {
"id": "1652541",
"screen_name": "Reuters",
"name": "Reuters"
},
"d": {
"tweet_id": "2097879002992070835",
"kind": "tweet",
"text": "Ash-covered shoes and a president in crisis…",
"lang": "en",
"author": {
"id": "1652541",
"screen_name": "Reuters",
"name": "Reuters",
"bio": "Top and breaking news, pictures and videos from Reuters.",
"avatar": "https://pbs.twimg.com/profile_images/1874154135869616128/nJDmubGJ_normal.jpg",
"banner": "https://pbs.twimg.com/profile_banners/1652541/1573687397",
"followers": 25900000,
"following": 1150,
"tweets": 1080000,
"location": "Around the world",
"url": "https://www.reuters.com",
"verified": true,
"verified_type": "Business",
"protected": false,
"created_at": "2007-03-20T17:46:05Z",
"category": null
},
"reply_to": null,
"retweet_of": null,
"quoted": null,
"media": [
"https://pbs.twimg.com/media/….jpg"
],
"media_items": [
{
"type": "photo",
"url": "https://pbs.twimg.com/media/….jpg",
"expanded_url": "https://x.com/Reuters/status/2097879002992070835/photo/1",
"width": 1200,
"height": 675
}
],
"urls": [
"https://reut.rs/…"
],
"counts": {
"reply": 12,
"rt": 40,
"like": 131,
"quote": 3,
"bookmark": 9
},
"views": 20411,
"url": "https://x.com/Reuters/status/2097879002992070835",
"full": true,
"kind_final": true
}
}İlk create çerçevesi bilerek incedir: kimliği, yazarı (author, hesabın en son okunan hali) ve kısaltılmış olabilecek metni taşır; böylece gönderi görüldüğü anda yola çıkabilir. url zaten gönderiyi gösterir. O anda alıntı her zaman özgün gönderiden ayırt edilemez; bu yüzden böyle bir çerçeve kind_final: false ile tweet.create der. Aynı id ile ardından gelen update yukarıdaki tam yükü ve kesinleşen türü taşır: alıntıysa kind_was: "tweet" ile tweet.quote.
{
"v": 1,
"t": "tweet.create",
"op": "create",
"id": "tweet:2097879002992070835",
"ts": 1789012345678,
"sid": "1789012346012-0",
"target": {
"id": "1652541",
"screen_name": "Reuters",
"name": "Reuters"
},
"d": {
"tweet_id": "2097879002992070835",
"kind": "tweet",
"text": "Ash-covered shoes and a president in crisis…",
"author": {
"id": "1652541",
"screen_name": "Reuters",
"name": "Reuters",
"bio": "Top and breaking news, pictures and videos from Reuters.",
"avatar": "https://pbs.twimg.com/profile_images/1874154135869616128/nJDmubGJ_normal.jpg",
"banner": "https://pbs.twimg.com/profile_banners/1652541/1573687397",
"followers": 25900000,
"following": 1150,
"tweets": 1080000,
"location": "Around the world",
"url": "https://www.reuters.com",
"verified": true,
"verified_type": "Business",
"protected": false,
"created_at": "2007-03-20T17:46:05Z",
"category": null
},
"url": "https://x.com/Reuters/status/2097879002992070835",
"full": false,
"kind_final": false
}
}Silme yükü
tweet.delete olayının d alanı. Yalnızca görmüş olduğumuz ve artık var olmayan bir gönderi için gönderilir. ts silmenin fark edildiği andır; gönderinin kendi zamanı daha önceki create çerçevesindedir.
| Alan | Tür | Anlamı |
|---|---|---|
tweet_id | string | Silinen gönderinin kimliği |
url | string | Eskiden bulunduğu yer |
{
"v": 1,
"t": "tweet.delete",
"op": "delete",
"id": "tweet:2097879002992070835:delete",
"ts": 1789012345678,
"sid": "…",
"target": {
"id": "1652541",
"screen_name": "Reuters",
"name": "Reuters"
},
"d": {
"tweet_id": "2097879002992070835",
"url": "https://x.com/Reuters/status/2097879002992070835"
}
}Profil değişikliği yükü
Her profile.* olayının d alanı. Bunlarda op, update olur.
| Alan | Tür | Anlamı |
|---|---|---|
field | string | Hangi profil alanının değiştiği; türdeki profile. sonrasındaki sözcüğün aynısı |
old | any | Önceki değer |
new | any | Yeni değer |
tweet | Brief (pinned only) | profile.pinned için: yeni sabitlenmiş gönderi |
old_tweet | Brief (pinned only) | profile.pinned için: elimizde varsa önceki sabitlenmiş gönderi |
{
"v": 1,
"t": "profile.bio",
"op": "update",
"id": "profile:1652541:bio:9c1d2e3f4a5b",
"ts": 1789012400000,
"sid": "…",
"target": {
"id": "1652541",
"screen_name": "Reuters",
"name": "Reuters"
},
"d": {
"field": "bio",
"old": "Top news and analysis from around the world.",
"new": "Top news, analysis and video from around the world."
}
}Takip yükü
follow.add, follow.remove ve followers.verified.add olaylarının d alanı.
| Alan | Tür | Anlamı |
|---|---|---|
user | User | Diğer hesap, tam bir Kullanıcı olarak |
{
"v": 1,
"t": "follow.add",
"op": "create",
"id": "follow:44196397:12:add:496948",
"ts": 1789012400000,
"sid": "…",
"target": {
"id": "44196397",
"screen_name": "elonmusk",
"name": "Elon Musk"
},
"d": {
"user": {
"id": "12",
"screen_name": "jack",
"name": "jack",
"bio": "…",
"avatar": "https://pbs.twimg.com/profile_images/…",
"banner": null,
"followers": 6400000,
"following": 4200,
"tweets": 29000,
"location": "",
"url": null,
"verified": true,
"verified_type": "blue",
"protected": false,
"created_at": "2006-03-21T20:50:14Z",
"category": null
}
}
}Hesap durumu yükü
account.status olayının d alanı. Durum active, protected (gönderiler yalnızca onaylı takipçilere görünür), suspended (X tarafından askıya alınmış) veya unavailable (devre dışı bırakılmış, silinmiş ya da başka bir nedenle görünmez) değerlerinden biridir. ts değişikliği fark ettiğimiz andır.
| Alan | Tür | Anlamı |
|---|---|---|
old | active | protected | suspended | unavailable | Önceki durum |
new | active | protected | suspended | unavailable | Şimdiki durum |
reason | string | null | Varsa X'in kendi ifadesi (örneğin Suspended) |
{
"v": 1,
"t": "account.status",
"op": "update",
"id": "account:9000002:status:active>suspended:497010",
"ts": 1789236000000,
"sid": "…",
"target": {
"id": "9000002",
"screen_name": "some_account",
"name": "Some Account"
},
"d": {
"old": "active",
"new": "suspended",
"reason": "Suspended"
}
}Arama eşleşmesi yükü
search.match olayının d alanı: bir Tweet yükü artı eşleşmeyle ilgili üç alan. Zarfın target alanı gönderinin yazarıdır; hedeflerinizden biri olması gerekmez.
| Alan | Tür | Anlamı |
|---|---|---|
keyword.id | int | Eşleşen anahtar kelimenin kimliği |
keyword.query | string | Sorgusu |
keyword.label | string | null | Ayarladıysanız etiketi |
author | User | Yazarın tam profili |
author_is_target | bool | Yazar aynı zamanda bu sistemde izlenen bir hesapsa true |
… | TweetPayload | Tweet yükünün her alanı |
{
"v": 1,
"t": "search.match",
"op": "create",
"id": "search:12:2097900000000000000",
"ts": 1789012500000,
"sid": "…",
"target": {
"id": "9000001",
"screen_name": "some_trader",
"name": "Some Trader"
},
"d": {
"tweet_id": "2097900000000000000",
"kind": "tweet",
"text": "$SOL breaking out…",
"lang": "en",
"author": {
"id": "9000001",
"screen_name": "some_trader",
"name": "Some Trader",
"bio": "…",
"followers": 1200,
"verified": false,
"…": "…"
},
"keyword": {
"id": 12,
"query": "($SOL OR \"Solana\") -filter:retweets",
"label": "solana"
},
"author_is_target": false,
"media": [],
"media_items": [],
"urls": [],
"url": "https://x.com/some_trader/status/2097900000000000000",
"full": true
}
}