« »
6/06/2008

Amusons-nous avec Plurk [1/2] : Poster un message sur Plurk avec PHP/Curl

Nous allons voir de cet article comment envoyer un message sur Plurk grâce à Curl et PHP. Pour le moment Plurk ne propose pas d'API, ni de documentation, mais votre serviteur à regardé attentivement pendant plusieurs minutes le fonctionnement de la bête afin de pouvoir vous proposer ces quelques morceaux de code.

Etape 1 : Vous inscrire à Plurk (si ce n'est pas déjà fait)

Courrez vous inscrire à Plurk, vous pouvez utiliser ce lien, qui vous permettra une fois inscrit, de m'avoir directement en friends (la chance que vous avez).

Etape 2 : Récupérer votre identifiant Plurk

plurk_logoContrairement à ce que l'on pourrait penser votre identifiant n'est pas votre nom d'utilisateur. Il peut être sous deux formes :

  • AFVeMES9QZpm (exemple d'identifiant privé, contenu dans un cookie après la connexion à Plurk)
  • 33527 (mon identifiant public disponible dans le code de ma page Plurk)

Si vous souhaitez envoyer un message sur Plurk il vous faut les données de votre cookie Plurk. Pour le récupéré j'ai donc créé un petit bookmarklet (encore un bookmarklet ?).

  1. Déplacez ce lien : Plurk (drag & drop) dans votre barre de favoris.
  2. Connectez-vous à Plurk, puis cliquez sur le favoris pour afficher votre cookie Plurk (copiez le) et votre identifiant privé.
  3. Vos possédez maintenant les données qui vous permettrons d'ajouter un message.

Petite anecdote : à la création de cet article, seul l'identifiant privé était nécessaire pour l'ajout d'un message sous Plurk, mais à l'heure actuelle, les variables first_plurk et modified sont obligatoire pour l'ajout d'un post. Je prévient donc qu'il n'y à aucune garantie pour que mon code fonctionne dans les jours à venir ;).

Etape 3 : Poster un message sur Plurk via Php/Curl, le code

function post_to_plurk($content= 'http://geekfg.blogspot.com',$qualifier = ':',$lang = 'fr')
{
// Entrez ici votre cookie Plurk trouvé grâce au bookmarklet
$COOKIE_CURL = '000000000000000000000000000000=?user_id=000000000000&first_plurk=00000000000000000000&modified=00000000=';

//Vous n'êtes pas obliger de toucher au code ci-dessous
$header = array('Cookie: plurkcookie='.$COOKIE_CURL);
$ch = @curl_init();
@curl_setopt($ch, CURLOPT_URL, 'http://www.plurk.com/TimeLine/addPlurk');
@curl_setopt($ch, CURLOPT_HEADER, 0);
@curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
@curl_setopt($ch, CURLOPT_POST, 1);
@curl_setopt($ch, CURLOPT_POSTFIELDS, 'posted='.rawurlencode(date('Y-n-j').'T'.(date('G')-2).':'.date('i:s')).'&qualifier='.rawurlencode($qualifier).'&content='.rawurlencode(utf8_encode($content)).'&lang='.$lang.'&no_comments=0');
@curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
$data = @curl_exec($ch);
$res = @curl_getinfo($ch);
if($res['http_code'] == 500)
{
return 'Erreur lors de l\'envoi au serveur : les paramètres saisis sont sans doute mauvais';
}
else if($res['http_code'] == 200)
{
return 'Message posté ! Voici ce que retourne le serveur : '.$data;
}
else if($res['http_code'] == 400)
{
return 'Erreur du serveur : '.$data;
}
@curl_close($ch);
}

Modifiez simplement le contenu de la variable $COOKIE_CURL par les données que vous a donné le bookmarklet tout à l'heure, ces données sont normalement de la forme :

000000000000000000000000000000=?user_id=000000000000&first_plurk=00000000000000000000&modified=00000000=

Une fois modifié, vous pouvez utiliser la fonction comme ceci :

echo post_to_plurk('Hello World'); //Plurk affichera : [PSEUDO] Hello World

Ou encore comme ceci :

echo post_to_plurk('être riche','wishes','fr'); //Plurk affichera : [PSEUDO] souhaite être riche

Autre version du code

Cette autre version (que je viens de trouver ici), se connecte à plurk, récupère les données du cookie et envoi un message sur Plurk.

function post_to_plurk2($content= 'http://geekfg.blogspot.com',$qualifier = ':',$lang = 'fr')
{
//Entrez ici vos identifiants de connexion Plurk
$nomutilisateur = 'LOGIN';
$motdepasse = 'MOTDEPASSE';

//Vous n'êtes pas obliger de toucher au code ci-dessous
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_COOKIEJAR, 'plurkcookie.txt');
curl_setopt($curl, CURLOPT_COOKIEFILE, 'plurkcookie.txt');
curl_setopt($curl, CURLOPT_URL, 'http://www.plurk.com/Users/login');
curl_setopt($curl, CURLOPT_POSTFIELDS, 'nick_name='.$nomutilisateur.'&password='.$motdepasse);
curl_exec($curl);
curl_setopt($curl, CURLOPT_URL, 'http://www.plurk.com/TimeLine/addPlurk');
curl_setopt($curl, CURLOPT_POSTFIELDS, 'qualifier='.rawurlencode($qualifier).'&content=' .rawurlencode(utf8_encode($content)). '&lang='.$lang.'&no_comments=0');
return curl_exec($curl);
curl_close($curl);
}

Voila, c'est finit pour aujourd'hui, mais la suite arrive demain ! N'hésitez pas à vous inscrire au flux rss pour suivre plus facilement le blog.

« »
 
 
Made with on a hot august night.
http://bit.ly/1II1u5L