Affichage des articles dont le libellé est curl. Afficher tous les articles
Affichage des articles dont le libellé est curl. Afficher tous les articles
10/04/2016

gron - Making JSON greppable!

Today, I friend of mine shared in our internal chat at iAdvize: gron, "Make JSON greppable!".

gron transforms JSON into discrete assignments to make it easier to grep for what you want and see the absolute 'path' to it. It eases the exploration of APIs that return large blobs of JSON but have terrible documentation.

Great idea right? When I first saw this, I wondered if it could be done with jq and sadly it seems it does not. Looking at gron Go source code was frightening. What a huge load of code for something that simple, there must be an easier way! And indeed, there was:

I just installed flat npm package an piped it through node and voila! For extra usability it could be wrapped I wrapped it into a gron npm package with support for valid JavaScript output, variable name escaping and so on.

Conclusion: it's often better (faster and safer) to stand on the shoulders of giants than to reinvent the wheel.

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 from an airplane the 19th of March 2017.