04 août
Par Clément dans Tutoriels
Mots-clefs :API, Connexion, OAuth, Tutoriaux, Tutoriel, Twitter

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.
Pour utiliser OAuth avec PHP, il nous faut la librairie disponible sur github et un compte twitter .
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.
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.

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.
« Arrondir les angles d’un élément HTML avec le plugin jQuery Round Corners | Tutorial : Créer une application avec le Zend Framework – #6 L’internationalisation »
2 trackbacks
9 commentaires
umoor
4 août 2009 à 11:04
1Probablement une erreur a la ligne 45 non?:
$content .= ‘‘.$request_link.’‘;
Le premier $request_link n’est pas interprété car il est entre simple quote. et par ailleurs c’est quoi ce ?PHPSESSID=2ad9247ba59c726265eccdce9021823b
umoor
4 août 2009 à 11:08
2Avec $content .= « $request_link« ; ca marche nickel.
Mr Xhark
10 août 2009 à 22:15
3Merci pour ce billet !
@umoor : ce sont les guillemets transformés par Wordpress qui bug ‘‘ => «
MyKiwi
2 novembre 2009 à 23:15
4Tres bonne explication. Je ne savais pas que l’on pouvais utiliser twitter sur nos sites. Je pense l’intégrer pour le site que je développe actuellement!
Merci pour le billet
Tophe
6 novembre 2009 à 23:43
5Salut, on peut bien s’amuser avec Twitter OAuth … Je me suis fait mon propre client PHP/Javascript qui permet de :
* Envoyer/Supprimer un tweet
* Créer/Supprimer un favori
* Faire des Replies
* Accéder à ses timelines
Tout ceci via OAuth, donc utilisable par tout le monde sans avoir à laisser de mot de passe.
Guillaume
9 novembre 2009 à 17:11
6Une petite question.. Comment rester connecté ? Je m’explique, j’ai créé un RSS to Twitter, qui marche sans souci, seulement j’aimerai l’automatiser en Crontab, et là les sessions ne peuvent pas être validées..
Faut-il stocker les sessions ou y a t’il une autre technique ?
Merci !
Clément
9 novembre 2009 à 17:18
7@Guillaume: Moi ce que je conseille souvent c’est de mettre les sessions dans la base de données. Comme ca tu sais qui est connecté sur ton site (de un) et tu peux accèder aux infos du connecté sans qu’il soit sur la page
Guillaume
9 novembre 2009 à 17:35
8En fait là dans mon cas, c’est pour une application Twitter, il faut que je prouve à Twitter que mon application a bien déjà le droit d’écriture/lecture (validé une première fois)
A chaque fois que j’y lance en cron, il me demande d’autoriser l’application une nouvelle fois (les sessions sont vides)
First interracial sex
13 juillet 2010 à 4:12
9Best Wishes, interracial sex [url=http://www.esnips.com/user/interracialsex#1]interracial sex[/url], ljzcov,
Laisser un commentaire
Devenir Fan de Dator.fr
Nuage de tags
Sponsors
Blogoliste
Blogs Amis
Derniers Posts
Derniers Commentaires
Les meilleurs sujets
Propulsé par WordPress