Olaylar

Zarf

Her olay aynı zarfa sahiptir; d, aşağıda açıklanan türe özgü yükü taşır.

AlanTürAnlamı
vintZarf sürümü. Bugün 1
tstringOlay türü, aşağıdaki tablodan
opcreate | update | deletecreate, update (aynı kimliğin zenginleştirilmesi) veya delete
idstringKararlı kimlik. Yinelenenleri bunun üzerinden ayıklayın
tsint (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
sidstringYeniden oynatma için akış konumu; akışta ve geçmişte bulunur
target.idstringİzlenen hesabın sayısal X kimliği (search.match için gönderi yazarınınki)
target.screen_namestringİzlenen hesabın kullanıcı adı
target.namestringHesabın görünen adı
dobjectTüre özgü yük

Olay türleri

TürKategoriAnlamı
tweet.createGönderilerHesap yeni bir şey paylaştı
tweet.replyGönderilerBirine yanıt verdi; reply_to yanıtlanan gönderiyi metni ve medyasıyla taşır
tweet.retweetGönderilerBirini yeniden gönderdi; retweet_of özgün gönderiyi eksiksiz taşır
tweet.quoteGönderilerBirini alıntıladı; quoted alıntılanan gönderiyi eksiksiz taşır
tweet.editGönderilerBir 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.deleteGönderilerHesabın yayımlamış olduğu bir gönderi kayboldu
profile.nameProfilGörünen ad değişti
profile.screen_nameProfilKullanıcı adı değişti
profile.bioProfilBiyografi değişti
profile.locationProfilKonum değişti
profile.urlProfilProfil bağlantısı değişti
profile.avatarProfilAvatar değişti; old ve new görsel URL'leridir
profile.bannerProfilBanner değişti; old ve new görsel URL'leridir
profile.pinnedProfilSabitlenmiş gönderi değişti; tweet ve old_tweet gönderilerin kendisini taşır
profile.verifiedProfilDoğrulama rozeti belirdi veya kayboldu
follow.addTakip grafiğiHesap birini takip etmeye başladı; user o hesabın tam profilidir
follow.removeTakip grafiğiHesap birini takip etmeyi bıraktı
followers.verified.addTakip grafiğiDoğrulanmış bir hesap onu takip etmeye başladı; user biyografi, sayaçlar, konum ve katılım tarihini taşır
account.statusHesapHesap korumalı, askıya alınmış veya erişilemez oldu ya da yeniden etkin
search.matchAramaBiri 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.

Her hesaptan her türü almak zorunda değilsiniz. Olay türlerini seçme, yalnızca bazılarını (örneğin yalnızca yeni doğrulanmış takipçileri) nasıl alacağınızı gösterir.

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.

AlanTürAnlamı
tweet_idstringGönderinin kimliği, dize olarak
kindtweet | reply | retweet | quoteNe tür bir gönderi olduğu
textstringTam metin (uzun gönderiler dahil)
langstring | nullX'in algıladığı dil
authorUserGö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_toBrief+ | nullYanıtlar için: yanıtlanan gönderi — bir Özet artı yazarının screen_name, tweet_id ve user_id değerleri
retweet_ofBrief | nullYeniden gönderiler için: özgün gönderi
quotedBrief | nullAlıntılar için: alıntılanan gönderi
mediastring[]Düz görsel URL'leri, medya öğesi başına bir tane
media_itemsMedia[]Türü, video varyantları ve boyutlarıyla her medya öğesi
urlsstring[]Gönderideki genişletilmiş bağlantılar
articleArticle | nullBir 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ı
viewsint | nullGörüntülenme sayısı, X sunduğunda
urlstringGönderinin kanonik bağlantısı
fullboolİlk, ince create çerçevesinde false; olay gönderinin tamamını taşıdığında true
kind_finalboolkind 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_wastweet | 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_ofBrief | nulltweet.edit olayında: bu sürümün yerini aldığı sürüm (kimliği ve elimizdeyse metni ile yazarı)
örnek
{
  "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.

aynı gönderi, ilk teslim edildiği haliyle, zenginleştirmeden önce
{
  "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.

AlanTürAnlamı
tweet_idstringSilinen gönderinin kimliği
urlstringEskiden bulunduğu yer
örnek
{
  "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.

AlanTürAnlamı
fieldstringHangi profil alanının değiştiği; türdeki profile. sonrasındaki sözcüğün aynısı
oldanyÖnceki değer
newanyYeni değer
tweetBrief (pinned only)profile.pinned için: yeni sabitlenmiş gönderi
old_tweetBrief (pinned only)profile.pinned için: elimizde varsa önceki sabitlenmiş gönderi
örnek
{
  "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ı.

AlanTürAnlamı
userUserDiğer hesap, tam bir Kullanıcı olarak
örnek
{
  "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.

AlanTürAnlamı
oldactive | protected | suspended | unavailableÖnceki durum
newactive | protected | suspended | unavailableŞimdiki durum
reasonstring | nullVarsa X'in kendi ifadesi (örneğin Suspended)
örnek
{
  "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"
  }
}

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.

AlanTürAnlamı
keyword.idintEşleşen anahtar kelimenin kimliği
keyword.querystringSorgusu
keyword.labelstring | nullAyarladıysanız etiketi
authorUserYazarın tam profili
author_is_targetboolYazar aynı zamanda bu sistemde izlenen bir hesapsa true
…TweetPayloadTweet yükünün her alanı
örnek
{
  "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
  }
}