Konsep inti

Target dan kata kunci adalah dua hal yang berbeda

Target adalah akun yang Anda awasi; Anda mendapat semua yang dilakukannya, atau hanya tipe peristiwa yang Anda pilih. Kata kunci adalah kueri yang Anda awasi di seluruh X; Anda mendapat unggahan dari siapa pun yang cocok dengannya, sebagai peristiwa search.match. Target diidentifikasi dengan handle, kata kunci dengan teks kuerinya, dan sebuah kunci bisa memuat berapa pun dari keduanya hingga batas paketnya.

Akun adalah id-nya, bukan handle-nya

Anda memantau akun, yang dikenali dari id numerik X-nya (id pada Target). Akun bisa mengganti handle (screen_name) atau nama tampilan kapan saja: Anda tetap menerima peristiwanya, peristiwa berikutnya membawa handle baru di target.screen_name, dan peristiwa profile.screen_name atau profile.name memberi tahu apa yang berubah. Jadikan id kunci data Anda. Di mana pun API meminta akun, Anda bisa menyebutnya dengan user_id, handle saat ini, atau handle yang pernah dipakainya.

Pengiriman dua fase: create, lalu update

Sebagian peristiwa unggahan disampaikan dalam dua frame. Yang pertama, op: "create", membawa hal-hal pokok — id unggahan, penulis dan teks — sehingga Anda bisa langsung bertindak. Sesaat kemudian id peristiwa yang sama tiba lagi dengan op: "update", kini membawa media, unggahan asli yang dikutip atau dibalas, jumlah dan sisanya. Peristiwa yang sudah lengkap saat pertama kali terlihat tidak memiliki frame kedua; GET /v1/meta/event-types menyebutkan tipe mana yang bisa memilikinya.

Apa yang harus dilakukan. Jika Anda butuh kecepatan, bertindaklah pada create. Jika Anda butuh unggahan utuh, tunggu update pada id yang sama. Apa pun pilihannya, jadikan id sebagai kunci penyimpanan Anda dan biarkan update yang datang belakangan menimpa apa yang Anda simpan. Tipe hanya bisa berubah di antara kedua frame dengan satu cara: tweet.create pertama dengan kind_final: false bisa menjadi tweet.quote. Jika Anda memperlakukan unggahan asli dan kutipan secara berbeda, golongkan frame seperti itu setelah update-nya tiba.

Setidaknya sekali, tidak pernah tepat sekali

Setiap akun yang dipantau diawasi oleh beberapa jalur independen sekaligus, sehingga satu jalur yang gagal tidak merugikan Anda. Jalur pertama yang melaporkan sebuah perubahan menang dan menjadi peristiwanya; yang lain dicatat sebagai penguat, bukan dikirim ulang. Namun, saat menyambung ulang, Anda mungkin melihat peristiwa yang sudah Anda miliki. Lakukan deduplikasi berdasarkan id.

Posisi dan pemutaran ulang

Setiap peristiwa membawa sid — posisinya dalam log kami. Simpan yang terakhir Anda proses; saat menyambung ulang, kirimkan sebagai ?last_id= dan kami mengirim semua yang ada setelahnya sebelum melanjutkan siaran langsung. Log menyimpan 24 jam, dan satu kali sambung ulang memutar ulang paling banyak 5.000 peristiwa. Target atau kata kunci yang Anda tambahkan saat soket terbuka mulai mengalir di dalamnya dalam 30 detik; Anda tidak perlu menyambung ulang.