Importer automatiquement ses statuts Google+ sur WordPress

Le 3 août 2012 — par

Depuis la nouvelle version de Google Reader et la disparition du partage à l’intérieur du service, j’utilise Google+ pour partager les liens que je trouve intéressant au fil de la journée. Vous avez sûrement dû vous en rendre compte ces derniers jours puisque j’ai décidé de les mettre directement sur maxime.sh au lieu de mon Tumblr.

J’utilise Google+ car c’est la méthode la plus rapide que j’ai trouvée pour partager directement des liens depuis mon client RSS Caffeinated sans me limiter à 140 caractères et avec quelques options de formatage. Voici le script PHP que j’ai créé pour importer ces statuts automatiquement sur mon blog WordPress.

Avant toute chose, il vous faudra deux éléments :

  • Votre ID sur Google+ : Vous le trouverez facilement en allant sur votre profil : https://plus.google.com/%Votre_ID%/posts
  • Une clé API pour Google+, que vous pouvez créer sur cette page : Créez un nouveau projet et activez l’API Google+ dans la liste des services. Votre clé se trouve ensuite dans la section « API Access ».

Ensuite, vous devrez placer le script dans un répertoire relatif à votre blog. Vous pouvez par exemple le mettre dans les fichiers de votre thème, wp-content/themes/montheme. J’ai configuré l’inclusion du script wp-blog-header.php relativement à ce répertoire, donc n’oubliez pas de le modifier si vous mettez le script ailleurs.

Le reste est commenté dans le script en lui-même.

<?php

date_default_timezone_set('Europe/Paris');

# Mettez le bon chemin pour le fichier wp-blog-header.php de votre blog WordPress
include(dirname(__FILE__).'/../../../wp-blog-header.php');

# Par défaut le fichier gplus.last est dans le même répertoire que le script
$gplus_file = dirname(__FILE__)."/gplus.last";
$limit_date = strtotime(trim(file_get_contents($gplus_file)));
$last_date = false;

# Indiquez votre ID Google+ et la clé API que vous venez de créer
$user_id = "";
$api_key = "";

# Indiquez l'ID du compte WordPress depuis lequel vous souhaitez poster
$wp_author_id = 0;

# Indiquez les ID des catégories si vous le souhaitez dans le tableau ci-dessous
$wp_cat_ids = array();

# On appelle le JSON de nos dernières activités publiques
$str = file_get_contents("https://www.googleapis.com/plus/v1/people/".$user_id."/activities/public?key=".$api_key);
$json = json_decode($str);

foreach ($json->items as $item) {

    # On enregistre la date du dernier post pour éviter de le réimporter plus tard
    if (!$last_date) {
        file_put_contents($gplus_file,$item->published);
        $last_date = true;
    }

    # Si on arrive à la limite de date configurée avant la boucle, le boulot est fini
    if (strtotime($item->published) <= $limit_date) break;

    $post_note = null;
    $post_link = null;
    $post_title = null;
    $post_photo = null;
    $post_photo_title = null;

    # Le but est de récupérer le lien et le titre de l'article posté avec le statut G+
    if (is_array($item->object->attachments)) {

        foreach ($item->object->attachments as $att) {

            if ($att->objectType == 'article') {

                $post_link = (string)$att->url;
                $post_title = html_entity_decode((string)$att->displayName,ENT_QUOTES,'UTF-8');
                break;

            }

        }

    }

    # On garde notre petit commentaire avec tout cela
    $post_note = html_entity_decode($item->object->content,ENT_QUOTES,'UTF-8');

    # Et on poste le tout sur WordPress
    $post = array(
        'post_title' => $post_title,
        'post_author' => $wp_author_id,
        'post_category' => $wp_cat_ids,
        'post_content' => $post_note,
        'post_status' => 'publish',
        'post_type' => 'post'
    );

    $new_post_id = wp_insert_post($post);

}

Vous pouvez ainsi importer automatiquement vos statuts Google+ en exécutant le script via un crontab.

Si vous êtes trop feignant vous pouvez aussi utiliser un plugin WordPress. J’ai décidé de ne pas l’utiliser car j’avais besoin de quelques personnalisations, comme le lien direct sur le titre ou la publication Twitter automatique sur @maxime_veille.

S'abonner au flux RSS du blog
Recevoir les nouveaux articles par e-mail :