twitteroauth
Twitter OAuth est un moyen très simple de se connecter à un site tier uniquement avec un bouton simple. De ce faite, pas de mot de passe demandé à l’utilisateur, ce qui rend encore plus intuitif la connexion à votre site.

Requis

Pour utiliser OAuth avec PHP, il nous faut la librairie disponible sur github et un compte twitter .

Comment ça marche ?

En faite, il vous suffit de créer une application sur le site de Twitter qui vous permettra de récupérer une clef publique pour votre application et une clef privée.

Ces deux clefs sont très importante ! Sans celles-ci il sera impossible de faire marcher votre application.

Comment faire ?

Rendez vous sur cette page (Il faut être connecté sur Twitter) et enregistrez une nouvelle application.
Attention, si vous voulez pouvoir permettre à votre application d’envoyer des twitt depuis votre application avec ce système vous devez mettre l’application en Lecture Écriture.

Image 1
Ensuite il vous suffit de récupérer les clefs et d’utiliser ce mini bout de code :

require_once('twitterOAuth.php');

session_start();
$consumer_key = 'votreclef';
$consumer_secret = 'voterclefprive';
$content = NULL;
$state = $_SESSION['oauth_state'];
$session_token = $_SESSION['oauth_request_token'];
$oauth_token = $_REQUEST['oauth_token'];
$section = $_REQUEST['section'];

// Déconnexion
if ($_REQUEST['test'] === 'clear') {
  session_destroy();
  session_start();
}

if ($_REQUEST['oauth_token'] != NULL && $_SESSION['oauth_state'] === 'start') {
  $_SESSION['oauth_state'] = $state = 'returned';
}

/*
 * Switch based on where in the process you are
 *
 * 'default': On demande un clef à Twitter pour connecter un nouvel utilisateur.
 * 'returned': L'utilisateur est autorisé à se connecter sur votre application.
 */
switch ($state) {
  default:
    // On créer un objet OAuth pour Twitter
    $to = new TwitterOAuth($consumer_key, $consumer_secret);
    // On envoie le token à Twitter
    $tok = $to->getRequestToken();

    // On sauvegarde les tokens pour plus tard
    $_SESSION['oauth_request_token'] = $token = $tok['oauth_token'];
    $_SESSION['oauth_request_token_secret'] = $tok['oauth_token_secret'];
    $_SESSION['oauth_state'] = "start";

    // Construction de l'URL pour l'autorisation
    $request_link = $to->getAuthorizeURL($token);

   // On construit le bouton de connexion.
    $content = 'Click on the link to go to twitter to authorize your account.';
    $content .= ''.$request_link.'';
    break;
  case 'returned':
    // Si l'utilisateur est déjà connecté, on exécute directement les requêtes sur Twitter
    if ($_SESSION['oauth_access_token'] === NULL && $_SESSION['oauth_access_token_secret'] === NULL) {
      // On créer un objet TwitterOAuth avec le token de l'utilisateur déjà connecté
      $to = new TwitterOAuth($consumer_key, $consumer_secret, $_SESSION['oauth_request_token'], $_SESSION['oauth_request_token_secret']);
      // On demande l'accès à Twitter
      $tok = $to->getAccessToken();

     // et on sauvegarde le tout en session.
      $_SESSION['oauth_access_token'] = $tok['oauth_token'];
      $_SESSION['oauth_access_token_secret'] = $tok['oauth_token_secret'];
    }
    /* Create TwitterOAuth with app key/secret and user access key/secret */
    // On créer un objet TwitterOAuth avec les clefs des applications et les clefs utilisateur.
    $to = new TwitterOAuth($consumer_key, $consumer_secret, $_SESSION['oauth_access_token'], $_SESSION['oauth_access_token_secret']);
    // On lance la requête pour vérifier les identifiant et retourner les infos du compte connecté
    $content = $to->OAuthRequest('https://twitter.com/account/verify_credentials.xml', array(), 'GET');
    // Requete permettant d'envoyer un twitt directement depuis votre application.
    //$content = $to->OAuthRequest('https://twitter.com/statuses/update.xml', array('status' => 'Visitez Dator.fr, c'est génial !'), 'POST');
        // Requête permettant de voir les replies de l'utilisateur connecté.
   	//$content = $to->OAuthRequest('https://twitter.com/statuses/replies.xml', array(), 'GET');
    break;
}
?>


  

  
  


< ?php var_dump($content); ?>


Vous pouvez tester ce morceaux de code ici.

A voir