Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Twitter
Code

Mengembangkan dengan Twitter API: Menganalisis Para Pengikut Anda

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Building With the Twitter API.
Building With the Twitter API: Creating Friends to Follow
Using the Twitter API to Tweet Repetitive Content

Indonesian (Bahasa Indonesia) translation by Kurniawan Sugi Purwanto (you can also view the original English article)

Final product image
What You'll Be Creating

Pendahuluan

Selamat datang di episode terbaru kami di seri Twitter API. Di episode sebelumnya, saya membuat Twixxr.com yang memungkinkan Anda mengikuti akun perempuan-perempuan berpengaruh di Twitter. Hari ini, saya akan mengubah fokus ke dalam, melihat para pengikut saya sendiri.

Meskipun saya belum sungguh-sungguh menggunakan Facebook sejak 2013, saya tetap aktif di Twitter—kendatipun mereka menggelontor feed saya dengan iklan dan cukup mengganggu saya ketika mencoba untuk mengoptimasinya secara algoritmis.

Barusan ini, saya mendapat status terverifikasi dan mulai mengumpulkan pengikut dengan laju penambahan yang sedikit lebih cepat. Waktu itu saya berharap untuk mendapat lebih banyak respon atas cuitan-cuitan saya. Secara umum saya terkejut akan sedikitnya respon rata-rata orang di Twitter.

Building With the Twitter API reifman profile on twitter with verified checkmark

Saya punya kurang lebih 1.900 pengikut, tetapi orang jarang berkomentar atau retweet hal-hal yang saya anggap penting dan orang umum akan tertarik. Misalnya, tidak seorangpun membagikan cuitan saya tentang peningkatan tajam catatan pemerkosaan di Seattle atau berkomentar pada kemunafikan Bill Gates yang paling memalukan.

Sudah cukup lama saya ingin melihat lebih dekat para pengikut Twitter saya dan menjawab sejumlah pertanyaan: Tepatnya siapa yang mengikuti saya? Dan mengapa mereka tidak bisa lebih interaktif? Mungkinkah hanya 10% saja pengikut saya yang manusia sungguhan?

Twitter sedang terlilit kesulitan mendapatkan pembeli, dan mungkin ini ada hubungannya.

Twitter API adalah sarana yang bagus untuk menginvestigasi hal ini. Kendatipun yang satu ini memiliki banyak sekali keterbatasan yang menjadikan sesuatu yang sederhana seperti analisis pengikut terlihat kompleks. Dalam episode hari ini, akan saya tunjukkan bagaimana saya bekerja dengan batasan (rate limit) untuk menilai dan membuat papan skor para pengikut saya.

Jika Anda punya pertanyaan atau umpan balik, silakan kirimkan di komentar di bawah ini atau hubungi saya di Twitter @reifman.

Menganalisis Para Pengikut Twitter Kita

Building With the Twitter API Initial scoreboard

Di atas, Anda bisa melihat papan skor dasar yang saya buat. Episode hari ini kebanyakan akan berfokus pada infrastruktur dan pendekatan yang saya gunakan untuk membuat papan skor tersebut. Saya harap akan berkesempatan untuk menulis lebih banyak tentang meningkatkan mekanisme skoring.

Dan sebagaimana bisa Anda lihat di atas, pemimpin hak kaum gay dan kolumnis nasihat seks Dan Savage mengikuti saya, tetapi tidak pernah retweet apapun yang saya bagikan. Jika hari ini ada waktu, akan kita analisis hal ini untuk menjawab pertanyaan penting seperti: apakah dia nyata, atau bot, atau sekedar mengikuti saya untuk mendapat saran seks pribadi? Apa yang bisa dipelajari dari akunnya untuk menentukan apakah dia mungkin akan berinteraksi dengan saya di Twitter, atau dengan pengikut saya yang lain?

Kode papan skor kebanyakan adalah purwarupa yang saya bangun berdasarkan kode Twixxr dari episode sebelumnya, tetapi ini bukan demo langsung untuk orang gunakan. Saya membagikannya supaya Anda bisa belajar darinya dan membangun papan skor Anda sendiri.

Berikut elemen-elemen dasar kodenya:

  • Membuat database untuk menyimpan data para pengikut saya dan hal-hal yang terkait dengannya.
  • Mengunduh para pengikut saya ke beberapa halaman yang masing-masingnya berisi 20 pengikut.
  • Melacak kursor untuk halaman-halaman tersebut karena saya mengunduh 15 halaman sesuai batasan window-nya.
  • Menyimpan data yang dikumpulkan tentang para pengikut saya dalam database.
  • Membangun suatu purwarupa algoritma skoring untuk memberikan skor pada semua pengikut.
  • Membangun tampilan untuk menelusuri papan skor.

Menyelami Kodenya

Membuat Migrasi Tabel Database

Saya membuat tiga tabel berbeda untuk menyimpan semua data dan membantu saya bekerja dengan rate limit Twitter API. Jika Anda belum akrab dengan migrasi database Yii, silakan pelajari Bagaimana Pemrograman Yii2: Bekerja Dengan Database dan Active Record.

Pertama, saya memperluas tabel SocialProfile untuk merekam lebih banyak data dari akun pengikut, misalnya apakah mereka sudah terverifikasi, lokasinya, dan berapa banyak hal yang difavoritkan:

Lalu saya membuat tabel pengindeks yang dinamai SocialFriend untuk melacak pengikut dengan akun-akun tertentu. Jika saya memutuskan untuk memformalkan layanan ini ke publik, saya akan membutuhkan ini. Tabel ini menghubungkan tabel User dengan pengikutnya di tabel SocialProfile.

Berikutnya, Twitter API mensyaratkan Anda membuat halaman berdasarkan permintaan 20 pengikut dalam satu waktu. Untuk mengetahui halaman berikutnya, Anda harus melacak kursor, lalu membuat tag, untuk menandai halaman selanjutnya yang akan diambil.

Karena Anda hanya diizinkan melakukan 15 permintaan pengikut tiap 15 menit, Anda harus menyimpan kursor-kursor ini di database. Tabelnya dinamai SocialCursor.

Alhasil, saya akan membuat tugas cron latar belakang untuk menangani semua ini, tetapi untuk purwarupa hari ini, saya akan menjalankan tugas tersebut dengan tangan saya sendiri.

Mengumpulkan Pengikut dan Data Akun Mereka

Berikutnya, saya membuat metode Twitter::getFollowers() untuk membuat permintaan. Berikut dasar-dasar kodenya:

Kode itu akan ke next_cursor dan secara berulang meminta pengguna$followers = $this->connection->get("followers/list",['cursor'=>$next_cursor]), hingga mencapai rate limit.

Keluarannya akan tampak seperti di bawah ini jika dijalankan di masing-masing halaman yang berisi 20 hasil:

Datanya disimpan dengan metode $sp->add($user_id,$u);. Metode SocialProfile::add() adalah versi yang berbeda dari metode fill() dari tutorial Twixxr. Metode tersebut menyimpan lebih banyak data dan mengelola indeks SocialFriend.

Di situ tertulis untuk menyimpan record baru atau memperbarui record lama supaya di kemudian hari Anda bisa melacak data pengikut Anda dan memperbaruinya secara berkala, dengan menimpa data yang lama.

Bagian terakhir ini memastikan adanya indeks SocialFriend antara tabel User dan tabel SocialProfile.

Memberi Skor Pengguna Twitter

Building With the Twitter API - Accounts with huge numbers of friends unlikely to read my tweets

Saya punya beberapa tujuan praktis melakukan skoring Twitter:

  • Membuang akun-akun yang mengikuti siapa saja yang mengikuti mereka, misalnya jika mereka punya 12.548 pengikut dan mengikuti 12.392 orang (lihat di atas).
  • Membuang akun-akun yang mengikuti lebih dari 1.500 akun yang sepertinya tidak mungkin akan melihat apa yang saya bagikan. Misalnya, Dan Savage yang mengikuti 1.536 orang.
  • Membuang akun-akun yang kirimannya sangat sedikit, atau hanya mengikuti sedikit akun saja, semacam akun yang diabaikan.
  • Membuang akun-akun yang favoritnya sangat sedikit—kemungkinan ini bot, yang tidak sungguh-sungguh menggunakan aplikasinya.

Dengan cara serupa, saya ingin menyoroti beberapa aspek positif:

  • Akun-akun yang terverifikasi
  • Akun-akun yang punya banyak pengikut
  • Akun-akun yang mengikuti kurang dari 1.000 orang—titik yang manis untuk saya.

Berikut adalah sejumlah kode dasar SocialProfile::score() yang menyoroti aspek-aspek positif tersebut:

Berikut sejumlah kode yang membuang akun-akun buruk:

Jelas-jelas ada banyak hal yang bisa dimainkan di sini dan ada beragam cara untuk meningkatkannya. Saya harap saya akan berkesempatan untuk menghabiskan lebih banyak waktu untuk melakukan ini.

Seiring berjalannya metode tersebut, seperti inilah penampilannya, diperbaruinya tabel SocialProfile dengan skor pada saat berjalan.

Menampilkan Papan Skornya

Grid default Yii memudahkan untuk menampilkan tabel SocialProfile dan mengubahsuai kolom-kolom papan skor.

Berikut adalah SocialProfileController::actionIndex():

Dan berikut tampilan grid yang sudah dimodifikasi:

Berikut penampakan top skor dengan algoritma awal:

Building With the Twitter API - Top Scoring Accounts

Ada banyak cara untuk meningkatkan dan memperbaiki pemberian skor. Saya berharap akan bermain lebih banyak dengan hal itu.

Dan ada lebih banyak kode yang saya ingin menulisnya dan memperluas penggunaan API tersebut, misalnya:

  • Menggunakan PHP gender untuk membantu dalam menghapus perusahaan dan menyisakan orang (perusahaan tidak banyak berinteraksi).
  • Meneliti frekuensi kiriman yang orang lakukan dan kapan terakhir kali mereka menggunakan Twitter.
  • Menggunakan pencarian Twitter API untuk melihat pengikut mana yang benar-benar pernah berinteraksi dengan konten saya.
  • Menyediakan umpan balik pemberian skor untuk memperbaikinya.

Melihat ke Depan

Saya harap Anda mendapati pendekatan pemberian skor sebagai sesuatu yang menggelitik. Ada jauh lebih banyak yang bisa dilakukan untuk meningkatkannya. Jangan ragu untuk bermain-main dengannya dan mengirimkan ide Anda di bawah ini.

Jika Anda punya pertanyaan atau saran, silakan kirimkan di komentar. Jika Anda ingin terus mengikuti tutorial-tutorial Envato Tuts+ saya berikutnya dan juga seri-seri yang lain, silakan kunjungi halaman instruktur saya atau ikuti @reifman. Pastikan juga mengecek seri startup saya dan Meeting Planner.

Tautan-Tautan Terkait

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.