github-logo-transparent

Due delle piattaforme più conosciute ed usate dai programmatori Web, WordPress e GitHub, che comunicano assieme… Realizzare il client per accedere alle API del noto sistema di revision control è stato a dir poco entusiasmante.

Il client, nello specifico, implementa la richiesta di un Access Token che verrà memorizzato in una option e poi utilizzato per effettuare delle query alle API di Github.

Per semplificarne l’uso ho implementato dei metodi per accedere a tutte le possibili interazioni (GET, POST, PUT, DELETE, PATCH).

Come funziona?

Niente meglio di un esempio per capirne il funzionamento ma partiamo dalle basi. Innanzitutto è necessario creare un’applicazione dall’apposito pannello di amministrazione di GitHub e segnarvi Client ID e Client Secret.

Ora scaricate GitHub-API-3-Client-for-WordPress e includete class-wp-github-client.php nel vostro plugin o tema WordPress.

Non vi rimane che dare un’occhiata all’esempio e per qualsiasi dubbio chiedete pure nei commenti.

// Include the client
require_once( 'class-wp-github-client.php' );

// Configure the client, at first run you'll be asked for permission
$github_client = new Wp_Github_Client( array(
    'client_id'     => 'client_id',
    'client_secret' => 'client_secret',
    'scope'         => 'gist'
) );

// Create a new gists
$github_client->post( '/gists', array(
    'description'   => 'the description for this gist',
    'public'        => true,
    'files'         => array(
    'file1.txt'     => array(
        'content'   => 'String file contents'
        )
    )
) );

// Get starred gists of the current user
var_dump( $github_client->get( '/gists/starred' ) );

// Delete a gist by ID
$github_client->delete( '/gists/5875745' );

// Update an existing gist
$github_client->patch( '/gists/5875558', array(
    'description' => 'the description for this gist changed'
) );

// Star a gist
$github_client->put( '/gists/5875706/star' );

// Get all the gist of the current user after a given date
$datetime = new DateTime('2012-07-26 23:21:46');

var_dump( $github_client->get( '/gists', array(
    'since' => $datetime->format(DateTime::ISO8601)
) ) ); 

Per maggiori informazioni sulle API di GitHub, qua trovate la guida completa.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *