Aujourd'hui, nous allons voir comment afficher rapidement et simplement les X derniers tweets de son compte twitter sur son site.

1. Création d'une app


Si vous savez déjà comment créer une app et avoir vos clés API, passez directement à l'étape 2.

Commençons donc par créer une app sur le site développeur de twitter à savoir : https://apps.twitter.com/. Connectez-vous et cliquez sur "Create New App". Ensuite, remplissez comme il vous semble le mieux le formulaire.

Une fois ceci fait, vous devriez arriver sur une page vous indiquant vos "API Keys". Vérifiez juste que le niveau d'accès (Access level) est bien à Read-only par mesure de sécurité.

 

2. Code PHP


Voici donc la classe PHP permettant d'afficher vos derniers tweets :

Il vous suffit de remplir les deux variables "oauth_consumer_key" & "oauth_consumer_secret" avec ceux de votre application précédemment créée

<?php
  class Twitter {
      public function __construct() {
          $this->_oauth_token = NULL;
          $this->_oauth_token_secret = NULL;
          $this->_oauth_consumer_key = "VOTRE CONSUMER KEY";
          $this->_oauth_consumer_secret = "VOTRE CONSUMER SECRET";
          $this->_oauth_nonce = md5(rand());
          $this->_oauth_signature_method = "HMAC-SHA1";
          $this->_oauth_timestamp = time();
          $this->_oauth_version = "1.0";
      }
      public function user_timeline($user, $count) {
          $this->_method = "GET";
          $this->_user = "screen_name=" . rawurlencode($user);
          $this->_count = "count=" . rawurlencode($count);
          $this->_url = "https://api.twitter.com/1.1/statuses/user_timeline.json";
          $this->_parameter_string = $this->_count . "&" .
          rawurlencode("oauth_consumer_key") . "=" . rawurlencode($this->_oauth_consumer_key) . "&" .
          rawurlencode("oauth_nonce") . "=" . rawurlencode($this->_oauth_nonce) . "&" .
          rawurlencode("oauth_signature_method") . "=" . rawurlencode($this->_oauth_signature_method) . "&" .
          rawurlencode("oauth_timestamp") . "=" . rawurlencode($this->_oauth_timestamp) . "&" .
          rawurlencode("oauth_token") . "=" . rawurlencode($this->_oauth_token) . "&" .
          rawurlencode("oauth_version") . "=" . rawurlencode($this->_oauth_version) . "&" .
          $this->_user;
          $this->gen();
          $session = curl_init();
          curl_setopt($session, CURLOPT_URL, $this->_url . "?" . $this->_user . "&" . $this->_count);
          curl_setopt($session, CURLOPT_HTTPHEADER, $this->_DST);
          curl_setopt($session, CURLOPT_SSL_VERIFYPEER, 0);
          curl_setopt($session, CURLOPT_SSL_VERIFYHOST, 0);
          curl_setopt($session, CURLOPT_RETURNTRANSFER, 1);
          return json_decode(curl_exec($session), true);
      }
      public function linkeur($txt) {
          $txt=preg_replace('#(http|ftp|steam|https)://([A-Z0-9_-]+)(.[a-z0-9]+){1,2}/?([A-Z0-9-/_?=&;!.]+)#i', '<a href="$0" title="$0" target="_blank">$0</a>', $txt);
          return $txt;
      }
      private function gen() {
          $this->_signature_base_string = rawurlencode($this->_method) . "&" .
          rawurlencode($this->_url) . "&" .
          rawurlencode($this->_parameter_string);
          $this->_signing_key = rawurlencode($this->_oauth_consumer_secret) . "&" .
          rawurlencode($this->_oauth_token_secret);
          $this->_oauth_signature = base64_encode(hash_hmac('SHA1', $this->_signature_base_string, $this->_signing_key, TRUE));
          $this->_DST = array (
              "Authorization: OAuth " .
              rawurlencode("oauth_consumer_key") . "="" . rawurlencode($this->_oauth_consumer_key) . "", " .
              rawurlencode("oauth_nonce") . "="" . rawurlencode($this->_oauth_nonce) . "", " .
              rawurlencode("oauth_signature") . "="" . rawurlencode($this->_oauth_signature) . "", " .
              rawurlencode("oauth_signature_method") . "="" . rawurlencode($this->_oauth_signature_method) . "", " .
              rawurlencode("oauth_timestamp") . "="" . rawurlencode($this->_oauth_timestamp) . "", " .
              rawurlencode("oauth_token") . "="" . rawurlencode($this->_oauth_token) . "", " .
              rawurlencode("oauth_version") . "="" . rawurlencode($this->_oauth_version) . """
          );
      }
  }
  ?>

Ensuite, pour afficher par exemple les 5 derniers tweet de votre compte twitter, vous pouvez le faire comme ceci :

<?php
      $t = new Twitter;
      $query = $t->user_timeline("sh1n1x", 5); //compte "Shinix et "5" dernier tweet
      foreach($query as &$q):
          echo '<li>'.$t->linkeur($q["text"]).'</li>';
      endforeach;
  ?>

 

Voilà c'est aussi simple que ça !

J'espère que ce mini-tuto vous sera utile :)