dimanche 24 avril 2011

Ajouter votre page à Twitter avec PHP



Si vous souhaitez utiliser l'API de Twitter, sous quelque forme, vous aurez à enregistrer une demande auprès de leur service développeur. Pas d'inquiétude, la réponse est immédiate!

Allez sur Twitter dévelopers, sélectionnez "register an app" avec votre adresse email et votre mot de passe Twitter en main, et remplissez le formulaire, en prenant des précautions particulières sur les points suivants:

- Type de demande doit être Browser. L'interaction entre l'utilisateur et Twitter a lieu uniquement dans le navigateur.
- le type d'accès par défaut est en lecture seule, mais cela ne suffira pas pour cet exercice. Si vous souhaitez publier sur votre page Twitter de votre site, vous aurez besoin de choisir le mode lecture et écriture (Read & Write).

Une fois inscrit, Twitter vous fournira une clé Consumer key et Consumer secret que vous aurez besoin de mentionner lors de l'élaboration de votre processus de connexion. Pour obtenir l'user_token et l'user_secret vous devrez cliquer dans le menu de droite sur "my access token" pour les avoir.

Maintenant Télécharger la classe PHP TwitterOAuth
Mettez cette classe dans un fichier que vous nommez TwitterOAuth.php

Maintenant nous allons faire usage de la fantastique classe tmhOAuth, écrit par themattharris.

Configurer votre fonction de connexion avec les 4 éléments: (consumer_key, consumer_secret, user_token, user_secret) que vous avez sur votre page "Application details"

.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
.14
.15
.16
.17
.18
.19
.20
.21
.22
.23
.24
.25
.26
.27
<?phpfunction tweet($url,$titre) {$url_courte get_tiny_url($url); 
$message_twitter tronque_chaine($titre,0,137 strlen($url_courte)).$url_courte;

require 'TwitterOAuth.php';
$tmhOAuth = new tmhOAuth(array(
'consumer_key'    => '',  //à renseigner
'consumer_secret' => ''//à renseigner
'user_token'      => ''//à renseigner
'user_secret'     => ''//à renseigner

                               ));

         $tmhOAuth->request('POST'$tmhOAuth->url('1/statuses/update'), array(

                                      'status' => utf8_encode($message_twitter)
                                  ));

}?>

J'ai ajouté 2 fonctions, l'une sert à créer une url courte et l'autre à tronquer une chaine car un Tweet ne peut pas faire + de 140 caractères.


.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
.14
.15
.16
.17
.18
.19
.20
.21
.22
.23
.24
.25
.26
.27
.28
.29
.30
.31
.32
.33
.34
.35
.36
.37
.38
.39
<?php
function get_tiny_url($url)
  {
  $ch curl_init();  
  $timeout 5;  
  curl_setopt($ch,CURLOPT_URL,'http://tinyurl.com/api-create.php?url='.$url);  
  curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);  
  curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);  
  $data curl_exec($ch);  
  curl_close($ch);  
  return $data;  
 }



function tronque_chaine($chaine,$debut,$max) {
    // prendre le morceaux de chaine
    $chaine substr($chaine$debut$max);
    // regarde si le nombre de tag est pair ou impair
    // si il est pair, on enleve le dernier tag ;)
    preg_match_all('/<(.*?)>/ie'$chaine$newPREG_SET_ORDER);
    $nb count($new);
    // si c''st pair en traite la chaine normalement
    if ($nb%== 1) {
        $chaine str_replace('<'.$new[$nb-1][1].'>'''$chaine);
        $chaine str_replace('</'.$new[$nb-1][1].'>'''$chaine);
        $espace strrpos($chaine," ");
        return substr($chaine,0,$espace)."...";
    }
    // si c'est impair on va chercher la dernierre balise et on enleve toute
    // celle de sa classe
    else {
        $espace strrpos($chaine," ");
        return substr($chaine,0,$espace)."...";
        return $chaine;
    }
} ?>
Maintenant réunissez les 3 fonctions ci dessus dans un même fichier, les fonctions "tweet", "get_tiny_url", "tronque_chaine") et paramétrer la fonction "tweed" avec des valeurs.( J'ai créer un exemple simple ci dessous.)
Lancez votre script, et allez voir sur votre page Twitter si le Tweet est bien passé!!

.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
<?php
// exemple$url "http://votresite.com/urlquejeveuxteeder"; 
$titre "me voici connecté à Twitter et je peux mettre maintenant tweeter!!";
tweet($url,$titre);
?>
Si vous avez un message d'erreur du genre :
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in

C'est que votre environnement n'est pas en php5, pour corriger ce problème vous devez créer un fichier .htaccess avec les lignes suivantes:


.01
.02
.03
.04
.05
SetEnv REGISTER_GLOBALS 0
SetEnv ZEND_OPTIMIZER 1
SetEnv MAGIC_QUOTES 1
SetEnv PHP_VER 5

Et voilà !! Vous voyez que ce n'est pas compliqué d'ajouter des Tweets à partir de son site sur sa page Twitter.

Je vous conseil de ne pas répéter à l'identique les mêmes textes de votre site sur votre page Twitter, pour ne pas faire de Duplicate Contents. Les filtres Anti Duplicate Contents des moteurs risquent fort de ne pas apprécier et de déclasser votre page Twitter dans les pages de résultats.

Aucun commentaire:

Enregistrer un commentaire