Cara Membuat Koneksi Ke Twitter Menggunakan OAuth dan PHP

Sejak dimatikannya akses ke API twitter dengan menggunakan username dan password, banyak aplikasi yang menggunakan platfowm twitter menjadi tewas. Beberapa ada yang langsung dioperasi dengan menggunakan akses OAuth, beberapa lainnya ditinggal mati. Tutorial kali ini akan mengajarkan bagaimana caranya menggunakan akses koneksi OAuth untuk aplikasi kita.

Hal pertama yang perlu dilakukan adalah dengan mendaftarkan aplikasi kita ke twitter melalui website developer mereka. Pada saat mendaftar, anda akan diminta informasi sebagai berikut:

  • Application Name: Nama aplikasi yang diinginkan. Akan muncul di timeline twitter sebagai via {application_name}. Hati-hatilah dalam memilih nama aplikasi. Jangan sampai meniru aplikasi yang sudah ada, bisa-bisa akun anda di suspend oleh twitter.
  • Description: Deskripsi dari aplikasi anda. Gunakan yang benar-benar mendeskripsikan aplikasi anda.
  • Application Website: Alamat dimana website anda berapa. Harus sesuai dengan dimana aplikasi anda diinstall. Misal, aplikasi anda ada di http://demo.freelancer.web.id/twitter_oauth/, anda bisa menggunakan http://demo.freelancer.web.id/twitter_oauth/ atau http://demo.freelancer.web.id/.
  • Organization: Nama organisasi anda.
  • Application Type: Tipe dari aplikasi anda. Bisa Client, untuk aplikasi desktop. Atau Browser, untuk aplikasi web. Perbedaan tipe ini juga akan mengakibatkan perbedaan bagaimana OAuth berperilaku. Saya tidak terlalu mengerti detailnya, karena selama ini hanya penggunakan tipe OAuth browser.
  • Callback URL: Adalah URL dimana kita memproses data setelah user melakukan otentikasi melalui OAuth. Opsional aja sih, karena nanti bisa di bypass dari aplikasi.
  • Default Access type: Default akses ini bisa Read-Only, bisa juga Read & Write. Tergantung kebutuhan. Kalau aplikasi hanya butuh akses timeline, tanpa perlu update status, add friend, follow-unfollow, dll, Read-Only sudah cukup.
  • Application Icon: Ini untuk icon yang akan digunakan saat user melakukan otentikasi OAuth di twitter.

Setelah semua informasi di atas diisi, tinggal mengisi CAPTCHA dan mendaftarkan aplikasi. Setelah aplikasi di daftarkan, anda akan dibawa ke halaman detail dari aplikasi tersebut, dimana di halaman tersebut terdapat beberapa detail aplikasi yang akan anda butuhkan, diantaranya adalah Consumer key & Consumer secret. Keduanya dibutuhkan agar aplikasi bisa melakukan otentikasi OAuth ke twitter.

Setelah aplikasi dibuat, sekarang kita butuh library oauth. Untuk ini, yang akan kita gunakan adalah library milik Abraham Williams. Kemudian, silahkan buat struktur direktori sebagai berikut.

/twitter_oauth/
  |-twitteroauth/
    |-OAuth.php
	|-twitteroauth.php
  |-index.php
  |-callback.php
  |-config.php
  |-redirect.php

Untuk direktori twitteroauth, silahkan dicopy dari library diatas. Untuk index.php, callback.php, config.php, dan redirect.php, gunakan kode yang akan saya berikan setelah ini. Jangan pakai kode dari library diatas. Tujuannya sih, untuk mempermudah proses belajar saja.

Berikut ini kode-kode yang dibutuhkan, saya berikan 1 halaman 1 file berikut penjelasan dari baris-baris kode tersebut.

Author: Arief Bayu Purwanto

Hello, my name is Arief Bayu Purwanto, a 24 years old father of a beautiful daughter. Interested in online programming, linux, games, and reading. Currently working on kapanlagi.com as junior developer. I live in a relatively quite and cool place called Malang. I'm available for some freelance stuff as well as some consulting job. You can see my portofolio for some previous task I've finished and some other information related to my capability. Btw, I'm plurking here.

  • maaf nih bos mau tanya.. klo buat itu kan di host yach ?? nah kan di root directory udah ada tuh config.php index.php ddl
    apakah kita buatnya di subdomain gitu ??
    terimakasih sebelumnya

    • Iya, ini mesti di host. Bisa sih, di komputer lokal, dengan catatan, punya IP publik.

      Untuk penempatan scriptnya sendiri, terserah ente aja sih sebenarnya, bisa mengubah index.php yang ada atau membuat subdirektori maupun subdomain baru.

      Kode2 diatas ini kan tujuannya untuk mendapatkan informasi oauth dari pengguna. Sedangkan pemakaian oauth itu sendiri tidak harus di index.php.

      Untuk config.php sendiri, itu kan hanya informasi dari aplikasi twitter anda yang bisa digabung ke config.php yang sudah dimiliki saat ini.

      • Safarsul

        ┬áMAS mau nanya saya sudah bisa koneksinya tapi saya belum bisa memasukkan databasenya…

  • Darmawan Reza

    kalo seandainya aplikasi kita local gimana ya??apa bisa gan??

    • Seharusnya bisa, dengan catatan, komputer lokal kamu ada IP publik-nya.

  • Yoga_man01

    eh numpang nanya dong, klo maksd yg di bawah ini apa ya maksdnya??

    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/statanet/domains/statusvia.net/public_html/twitter/apps/index.php on line 18

    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/statanet/domains/statusvia.net/public_html/twitter/apps/common/theme.php on line 144

    saya ga ngerti nih, mksih,

    • Kalau dari error itu sih, kemungkinan ada masalah di query, atau di variable yang digunakan di input mysql_fetch_assoc().

  • goblok

    mastah, mau tanya donk, saya pake ubuntu 10.10, apache+php+mysql+phpmyadmin sudah jalan. Tapi kenapa setiap saya bikin code untuk dikoneksikan kedatabase selalu error, forbidden, atau bahkan tidak muncul, apa2 sama sekali. Apakah kita harus setting php.ini untuk mysql dan mysqli, bagaimana settingan php.ini yg sangat valid untuk web developer di linux
    Terima Kasih

    • Passwordnya sudah bener belum?
      Kalau phpmyadmin bisa konek, berarti masalahnya ada di kode phpmu, bukan setting php.ini

  • Dhyaudha

    “Harus sesuai dengan dimana aplikasi anda diinstall.”
    saya bingung justru bagaimana menginstall alamat website-nya.

  • Zaki Penulis

    mas, saya sudah sukses implement. hasil ada bentuk array saja.
    Contoh pengolahan array ada tidak?

  • Abdur rahimi

    gan kenapa ya saya selalu gagal dalam mengedit twitter oauth?? yg mana saja yg harus kita edit?? jika saya menggunkannnya selalu saja keluar tulisan refresh page or try again latter?? apa itu yg salah ya??

  • Nunu G’Bolee CiWekz

    udah ngikutin step2 di atas sampe selesai tp kok mlh cuma tampil kyk gini ? untuk codingnya ada yg ditambah lg ga? aku udah ngikutin dan yg diganti paling hanya config nya saja

  • botskip

    sam saya mencoba tpi mengalami eror di index.php errorx seperti berikut
    Warning: require_once(twitteroauth/twitteroauth.php) [function.require-once]: failed to open stream: No such file or directory in C:xampphtdocstwitter_oauthindex.php on line 4

    Fatal error: require_once() [function.require]: Failed opening required ‘twitteroauth/twitteroauth.php’ (include_path=’.;C:xamppphpPEAR’) in C:xampphtdocstwitter_oauthindex.php on line