Pada artikel sebelumnya, kita menyiapkan script yang memudahkan kita membuat tweet bernomor urut secara massal. Pada kesempatan ini, akan diuraikan bagaimana alur dari kodenya.
Daftar file maupun isi jeroan file di mass numbered tweeting bisa langsung dilihat di TKP – repository Mass Numbered Tweeting (forked dari tmhOAuth) di githubku.
Sebagian besar file di sini adalah adaptasi dari ebook Single Usert Twitter OAuth Programming oleh Adam Green yang bisa didownload dari situsnya 140dev.com. Selain itu ada juga file dari library tmhOAuth oleh Matt Harris .
Untuk melihat “jeroan” dari file-file ini, silakan Open With gedit. Jika belum menginstall gedit, bisa saja menggunakan Notepad. Tapi sebaiknya menggunakan gedit agar tidak tampak berantakan karena file-file ini aku edit dengan gedit.
tmhOAuth.php adalah library yang menangani proses otorisasi OAuth ke API Twitter. Dengan adanya library ini proses OAuth yang rumit tidak perlu kita pikirkan. Kita cukup mengetahui bagaimana cara memanfaatkan library ini. Karena aku tidak paham apa isi dari library ini, maka aku tidak akan menguraikan tentang file ini. :p
Langkah pertama memanfaatkan tmhOAuth adalah menyiapkan kode-kode kredensial, baik untuk aplikasi yang telah kita buat di Twitter maupun untuk akun Twitter itu sendiri. Kode-kode tersebut terdiri atas “API Key”, “API Secret”, “Access Token”, “Access Token Secret” (cara mendapatkan kode-kode ini silakan baca pada artikel sebelumnya). Agar kredensial itu tidak perlu kita ketik berulang kali, maka kita siapkan kredensial itu dalam file tersendiri yang dapat diimpor oleh file lain, yakni app_tokens.php.
tmhOAuth.php dan app_tokens.php harus diimpor dalam setiap file php yang memerlukan koneksi ke Twitter.
Index.html adalah halaman awal yang akan ditemui. Halaman ini menyajikan antarmuka yang sederhana, menghubungkan pengguna dengan kode-kode yang lebih kompleks di belakang layar.
Dari kode sumber index.html, tampak bahwa ada 4 form dalam index.html. Masing-masing form terkait dengan sebuah file php (lihat atribut action) dan memiliki kotak input yang diberi nama masing-masing.
Judul Form | Action | Input Names |
Generate Daftar Followers dari @Username | get_followers.php | akun |
Generate Daftar Friends dari @Username | get_friends.php | akun |
Mengetwit Biasa | post_tweet.php | teksbiasa |
Mengetwit Numbered Batch | post_tweet_batch.php | pengikut, urutanpertama |
Ketika kita input suatu @username dalam kotak input di form “Generate Daftar Followers dari @Username”, dan mengeklik submit, form tersebut akan mengirimkan input tersebut dengan nama “akun” kepada script “get_followers.php”. Hal yang sama juga berlaku bagi form-form lainnya, sebagaimana ditunjukkan pada tabel di atas.
Proses dalam file get_followers.php akan diuraikan dalam bagian berikutnya.
Sebelum masuk ke jeroan get_followers.php, sebaiknya dibahas sedikit dahulu Twitter API ini. Application programming interface (API) adalah sekumpulan perintah, fungsi, dan protokol yang dapat digunakan oleh programmer saat membangun perangkat lunak untuk sistem operasi tertentu. API memungkinkan programmer untuk menggunakan fungsi standar untuk berinteraksi dengan sistem operasi.
Twitter punya API yang memungkinkan program lain berhubungan dengan server twitter. Hubungan dari program ke server twitter bisa disebut request. Request ini ibaratnya kita meminta “jawaban” dari server dengan memberikan “pertanyaan”. Sedangkan “jawaban” dari server twitter ke program bisa disebut “respon”. Lebih lengkap tentang Twitter API silakan baca di Dokumentasi Resmi Twitter API.
Kode sumber get_followers.php dan get_friends.php hanya berbeda satu kata saja, yaitu pada baris ini
Karena itu, pembahasan untuk kedua file di atas akan sama persis. Dalam artikel ini akan dibahas get_followers.php saja.
require akan mengimpor app_tokens.php dan tmhOAuth.php ke dalam file get_followers.php. Selanjutnya membuat objek $connection dengan memanfaatkan fungsi tmhOAuth dari library tmhOAuth.php. Array yang menjadi input bagi fungsi tmhOAuth merupakan kredensial yang sudah disiapkan dalam app_tokens.php.
Selanjutnya, get_followers.php menerima input dari file yang memanggilnya dengan metode POST dan menyimpannya sebagai variabel $akun. File yang kita siapkan untuk memanggil adalah index.html yang sudah dibahas sebelumnya. $akun ini merupakan suatu akun twitter yang akan kita ambil daftar follower-nya.
Melakukan request (“pertanyaan”) ke server twitter. Perincian tentang request ini dapat dilihat pada Dokumentasi Twitter REST API untuk GET followers/list.
Informasi terpenting yang kita butuhkan dari dokumentasi tersebut untuk membuat request ke Twitter adalah sebagai berikut:
Method: GET
Resource URL: https://api.twitter.com/1.1/followers/list.json
Parameter-parameter wajib: screen_name
Selanjutnya kita siapkan parameter-parameternya, yakni:
screen_name: $akun
include_user_entities: false
skip_status: true
include_user_entities dan skip_status adalah parameter opsional yang kita tambahkan agar respon (“jawaban”) yang diberikan oleh Twitter API lebih sederhana. Dengan ini, respon tidak mengikutsertakan entitas (informasi URL di profil user) dan melongkapi data status terkini user.
Format untuk membuat request dengan memanfaatkan tmhOAuth:
$namaobjek->request(‘Method’, $namaobjek ->url(‘bagian Resource URL‘),arrayofparameter);
Sehingga beginilah kode yang kita letakkan dalam file ini (baris 31-32):
$connection->request(‘GET‘, $connection->url(‘1.1/followers/list‘), array(‘screen_name’ => $akun, ‘include_user_entities’ => ‘false’, ‘skip_status’ => ‘true’));
Setelah request dilakukan ke server twitter, tentu saja server twitter akan mengirimkan respon. Respon ini ada di dalam ‘response’, yang ada di dalam objek $connection. Objek yang dikirim oleh server twitter berformat JSON.
Baris ke-35 sekedar mengambil HTTP response code.
Agar dapat diolah lebih lanjut dalam PHP, baris ke-38 mengkonversi respon berformat JSON menjadi format array.
Baris ke-41 mencetak teks Error jika HTTP response code bukan 200 (200 artinya sukses).
Kita membutuhkan daftar username twitter. Daftar tersebut dapat kita dapatkan dari array hasil konversi dari respon server berformat JSON yang telah disimpan dalam variabel $response_data. Struktur array $response_data tersebut adalah array bersarang seperti ini:
users | 0 | id | value |
id_str | value | ||
name | value | ||
screen_name | value | ||
… | … | ||
1 | id | value | |
id_str | value | ||
name | value | ||
screen_name | value | ||
… | … | ||
… | … | … |
Dari sekian banyak data yang dikandung oleh array $response_data, yang kita butuhkan hanya nilai dari screen_name. Kode pada baris ke-46 mengambil semua nilai screen_name dari $response_data, dan menyimpannya dalam array $snames.
Untuk mendapatkan nilai screen_name, kita perlu memanggilnya dengan
$response_data[users][0][screen_name]
$response_data[users][1][screen_name]
$response_data[users][2][screen_name]
….
Agar simple, kita memanfaatkan iterasi foreach(). Selanjutnya pada baris 51, kita mencetak satu per satu isi dari $response_data dengan dibatasi tanda koma (,). Inilah output yang kita peroleh:
Sebagaimana sudah disinggung di atas, penjelasan untuk get_friends.php itu sama saja. Hanya satu kata yang diganti, hasilnya akan sama saja juga. Baca link ini untuk Dokumentasi GET friends/list.
Agar daftar username bisa dievaluasi dahulu oleh pengguna, daftar username sengaja tidak langsung dihubungkan dengan post_tweet.php untuk mengetwit.
Demikianlah uraian atas alur Mass Numbered Tweeting bagian pertama. Artikel ini terpaksa dibagi menjadi dua bagian karena ternyata cukup panjang.
Secara ringkas, bagian pertama ini membahas fitur penunjang dari Mass Numbered Tweeting, yaitu mendapatkan daftar friends / followers dari suatu akun twitter. Itu baru dua dari empat action yang digunakan index.html. Dua action berikutnya, yakni bagaimana Mass Numbered Tweeting itu bekerja, akan dibahas dalam artikel berikutnya.
Terima kasih. Semoga Bermanfaat.
(BERSAMBUNG)