Ambil Status (User Timeline) dari Twitter

Posted in: Pemrograman,Website & Blog |

This post is also available in: English

Twitter dengan OAuth

This post is also available in: English

Baru saja mengecek ke home page web ini ternyata status Twitter tidak ditampilkan lagi. Hal ini dikarenakan Twitter tidak lagi memberikan ijin untuk mengakses langsung RSS dari status saya (user timeline), lagipula karena saya juga mengeset protect my tweets untuk tweets baru. Sebelumnya dengan mudah saya tinggal mem-fetch RSS dari alamat URL

http://twitter.com/statuses/user_timeline/[user name].rss

menggunakan fungsi fetch_feed pada WordPress (yang menggunakan SimplePie) dan otomatis di-parsing sehingga mudah untuk mereproduksi hasil RSS user timeline tersebut. Tapi berhubung sekarang Twitter menggunakan OAuth untuk otentikasinya, jadi saya harus mengotak-atik sedikit kode untuk mem-fetch user timeline Twitter. Sebelumnya untuk memulai ada baiknya membaca dari Get Started API Twitter. Untuk mengetahui apa yang harus dilakukan terutama yang berhubungan dengan OAuth dan API dari Twitter. Ya, kita persingkat saja.

  1. Kita meregistrasi dulu aplikasi (web) yang digunakan untuk mengakses Twitter melalui alamat disini.Isi semua field yang harus diisi (name, description, dll) dan yang harus diperhatikan adalah:
    • Application Website: [alamat yang digunakan untuk mengakses atau tempat kita menaruh aplikasi untuk mengakses Twitter]
    • Application Type: Browser (karena saya menggunakan web bukan desktop client)
    • Callback URL: [alamat yang digunakan untuk mengakses Twitter]kalau punya saya Callback URL: http://www.hikaruyuuki.com/
    • Default Access type: Read & Write

    Bila sudah selesai dan akan menyimpan, kita harus menekan tombol I Accept untuk menerima TOS (Terms of Service) dari Twitter.

  2. Setelah tersimpan maka kita akan dihadapkan dengan halaman Application Details yang berisi OAuth Settings. Catat setingan berikut ini (misal copy-pastedi Notepad) :
    • Consumer Key
    • Consumer secret

    Kemudian cari My Access Token di sidebar sebelah kanan dan klik sehingga muncul halaman OAuth 1.0a access token (bersifat rahasia dan jangan sampai bocor) Catat setingan berikut ini (misal copy-paste di Notepad) :

    • Access Token (oauth_token)
    • Access Token Secret (oauth_token_secret)

    Empat settingan di atas inilah yang digunakan sebagai otentikasi OAuth di Twitter lewat aplikasi/web kita.

  3. Download kode PHP untuk OAuth dan TwitterOAuth dari sini.
  4. Upload ke web kita, misal di root directory.
  5. Untuk kode PHP nya karena saya menggunakan WordPress mungkin perlu ada penyesuaian bila diimplemetasikan di framework/bahasa lain:
    <?php
    require_once './twitteroauth.php';
    
    $twitteroauth = new TwitterOAuth(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET, TWITTER_ACCESS_TOKEN, TWITTER_ACCESS_TOKEN_SECRET);
    
    $twitteroauth->format = 'rss';
    $user_timeline = $twitteroauth->get('statuses/user_timeline');
    ?>
    
    <h2 id="latest-twitter"><?php _e('Latest <span>On</span> Twitter'); ?></h2>
    <?php // Get RSS Feed(s)
    include_once(ABSPATH . WPINC . '/feed.php');
    
    // Get a SimplePie feed object from the specified feed source.
    $rss = new SimplePie();
    $rss->set_raw_data($user_timeline);
    $rss->init();
    $rss->handle_content_type();
    
    if (!is_wp_error( $rss ) ) : // Checks that the object is created correctly
     // Figure out how many total items there are, but limit it to 5.
     $maxitems = $rss->get_item_quantity(3);
    
     // Build an array of all the items, starting with element 0 (first element).
     $rss_items = $rss->get_items(0, $maxitems);
    endif;
    ?>
    
    <ul>
     <?php if ($maxitems == 0) echo '<li>No items.</li>';
     else
     // Loop through each feed item and display each item as a hyperlink.
     foreach ( $rss_items as $item ) : ?>
     <li>
     <time title="<?php echo $item->get_date('c');?>" datetime="<?php echo $item->get_date('c');?>">
     <strong><?php echo $item->get_date('M');?></strong>
     <br />
     <?php echo $item->get_date('j');?>
     </time>
     <h3 title="<?php echo 'Posted '.$item->get_date('j F Y | g:i a'); ?>">
     <?php echo processLinks($item->get_title()); ?>
     </h3>
     </li>
    <?php endforeach; ?>

Selain untuk mengambil status, kita juga bisa mengupdate status, melihat direct message, mentions, friends, dll. Untuk lebih lengkapnya bisa dilihat dan dicoba-coba sendiri melalui Twurl Console. Selamat mencoba!




Speak Up!

Leave your own comment

Notify me of follow-up comments via e-mail (or subscribe here).




 

Share

Subscribe Feed

Email

Facebook

Twitter

Delicious

Digg

StumbleUpon

Google Buzz

Deviantart