Pada postingan sebelumnya, saya telah sedikit berbagi tentang social media analytics dan sempat menyinggung sumber data yang digunakan dalam social media analytics diantaranya sosial media, news portal, blog dll. Kali ini, saya akan berbagi salah satu tahap awal dalam analytics yakni pengumpulan data (data harvesting).
Sesuai judulnya, postingan ini akan membahas tentang cara mendapatkan data dari Twitter sebagai bahan analisis. Dari sosial media populer seperti facebook dan instagram, twitter ini yang paling baik soal open access data. Twitter memberikan akses kepada khalayak untuk mengkonsumsi data mereka lewat API yang mereka sediakan. thanks Jack Dorsey!. API twitter sendiri terdiri 2 jenis yaitu REST API dan Streaming API. Lebih afdholnya langsung ke TKP aja gan untuk penjelasannya :D. Secara singkat bedanya, kalo REST API kita ngambil data di masa lalu hingga sekarang, kalo streaming API kita ngambil data mulai dari sekarang hingga ke depan tergantung berapa lama kita mau ambil. Nah kali ini kita akan menggali kenangan masa lalu di twitter lewat REST API. uhuk.
Terima kasih kepada sohib kita Jeff (sok kenal) yang sudah membuat package R yang diberi nama twitteR sehingga kita tinggal dengan mudah menggunakannya lewat function-function yang udah doi buat. Oke langsung saja ke tahap-tahapnya.
- Generate access token API key dan API secret untuk bisa mengakses twitter API. Cara membuatnya langsung saja ke tulisan ini, inshaa Allah cukup jelas.
- install twitteR package
ada 2 cara untuk install package di R, pertama dengan build in function di Rinstall.package
atau melalui github repository menggunakan packagedevtools
- install package dari CRAN
Ini cara paling praktis untuk install package ke R, caranya sangat mudah tinggal tulis fungsiinstall.package("package_name")
package akan otomatis terinstalll beserta dependensinya. - install package melalui Github menggunakan
devtools
Terkadang ada package yang belum terdaftar di CRAN sehingga belum bisa kita install menggunakaninstall.package
, tapi kita tetap bisa menginstall package tersebut melalui repository development-nya dengan bantuan packagedevtools
.Berikut adalah syntax untuk install twitteR package dengan dua cara diatas:
#install twitteR package dari CRAN install.package("twitteR") #install twitteR package dari github repository library(devtools) install_github("twitteR", username="geoffjentry")
- install package dari CRAN
- Aktifkan package dan twitter authentication
Setelah twitteR package terinstall, kita tinggal mengaktifkan package dengan functionlibrary(twitteR)
, setelah itu kita perlu mengaktifkan credential yang kita dapat di step 1 untuk setiap kita ingin mengakses API twitter. Di package twitteR sendiri telah ada fungsi untuk menjalankan autentifikasi tanpa perlu menggunakan bantuan package lain sepertihttr
.library(twitteR) #aktifkan package twitteR api_key = "XXXxxyyYzzz" #change with yours api_secret = "Xyy21xyyy65zy7zyzx" #change with yours token = "21313yyzxyzxy213xzy" #change with yours token_secret = "XXXxxx98188xxx999yy" #change with yours setup_twitter_oauth(api_key, api_secret, token, token_secret) #fungsi untuk autentifikasi
Setelah credential telah diaktifkan, sekarang kita sudah bisa mengakses data dari API twitter.
- download data dari twitter
Untuk menggenerate data kita menggunakan fungsisearchTwitter
, fungsi ini mempunyai beberapa parameter, yang terpenting adalahkeyword
yakni keyword apa yang ingin kita download dari twitter. Kita juga bisa menambah parametern
yakni jumlah tweet yang ingin kita ambil serta mengatur waktu dari rentang kapan data yang mau kita ambil (tentunya dari masa lalu hingga sekarang). Berikut contohnya.#ambil 100 tweet yang mengandung keyword pialaAFF dari tanggal 18 hingga 20 november tweets = searchTwitter("pialaAFF", n = 100, since = "2016-11-18", until = "2016-11-20")
searchTwitter
akan mengembalikan data bertipe list, jika ingin melakukan analisis akan lebih mudah jika kita menggunakan data bertipe data frame, untung saja di twitteR telah ada function untuk merubah data bertipe list ke data frame menggunakan fungsitwListToDF
.#merubah data list ke data frame tweets_df = twListToDF(tweets) #data telah berbentuk dataframe dan siap dianalisa names(tweets_df) #untuk melihat kolom apa saja yang dimiliki oleh data
output : searchTwitter memberikan data dengan 16 kolom sebagai berikut.
[1] "text" "favorited" "favoriteCount" "replyToSN" "created" [6] "truncated" "replyToSID" "id" "replyToUID" "statusSource" [11] "screenName" "retweetCount" "isRetweet" "retweeted" "longitude" [16] "latitude"
contoh 5 data teratas adalah
head(tweets_df)
output
Parameter diatas seperti keyword, n, date range dapat kita ubah sesuai dengan keinginan kita, bisa juga kita menambahkan parameter lainnya sesuai dengan yang ada di dokumentasi twitteR package. Tentu saja, REST API ini punya limit dalam memberikan data kepada client baik rentang waktu yang bisa diakses maupun jumlah tweet yang diberikan, ada baiknya untuk membaca dulu dokumentasi twitter API sebelum mengaksesnya baik melalui R, python atau bahasa lainnya. Sekian, semoga bermanfaat.