Bonjour,
je voudrais savoir comment ajouter le client api tumblr ( https://github.com/tumblr/tumblr.php ) à cakephp, pour pouvoir lister les derniers messages du tumblr sur mon accueil, puis sans doute plus tard poster depuis mon admin.
J'ai bien compris les méthodes à employer ( https://api.tumblr.com/console//calls/blog/posts ) mais comment j'inclus le client ? Je sèche là ...
a+ :)
Tu as 2 façons de le faire: soit via un Helper pour récupérer les infos directement dans tes vues, soit via un component pour les traiter dans les Controller.
Dans les 2 cas, tu auras besoin d'utiliser App::import();
Dans un premier temps, Crée un dossier Tumblr dans app/Vendor et places y les fichiers de l'API (Client.php, RequestHandler.php et RequestException.php). Ensuite crée un fichier TumblrHelper dans app/View/Helper et ajoute en début de fichier la ligne
App::import('Vendor', 'Tumblr', array('file' => 'Tumblr/Client.php'));
Ensuite tu as juste à créer des fonctions pour les différents appels de l'API
Voila un exemple d'Helper que j'utilise pour l'API de Twitter:
TwitterHelper.php dans app/View/Helper
<?php
App::uses('AppHelper', 'View/Helper');
App::import('Vendor', 'TwitterOAuth', array('file' => 'TwitterOAuth/TwitterOAuth.php'));
class TwitterHelper extends AppHelper {
public function userTimeline($options = array()) {
$twitter = $this->__setup();
// Vérifie si un fichier de cache existe et l'utilise, sinon création
$tweets = Cache::read('Twitter.userTimeline', 'twitter');
if (!$tweets) {
$tweets = $twitter->get('statuses/user_timeline', $options);
Cache::write('Twitter.userTimeline', $tweets, 'twitter');
}
return $this->_View->element('tweets', array('tweets' => $tweets));
}
private function __setup() {
Configure::load('social', 'default', false);
$consumerKey = Configure::read('Twitter.consumerKey');
$consumerSecret = Configure::read('Twitter.consumerSecret');
$tokenKey = Configure::read('Twitter.tokenKey');
$tokenSecret = Configure::read('Twitter.tokenSecret');
return new TwitterOAuth($consumerKey, $consumerSecret, $tokenKey, $tokenSecret);
}
}
Déclaration du Helper dans AppController.php
public $helpers = array(
'Twitter',
);