Google Webmaster Tools Api in PHP
- Visualizzare l' elenco dei siti web
- Aggiungere o rimuovere un sito
- Gestire la verifica di proprietà
- Modificare le impostazioni (geolocazione, dominio preferito, velocità di scansione )
- Recuperare l' elenco delle parole chiave che Google ha rilevato su un determinato sito
- Gestire le proprie Sitemaps
- Gestire il centro messaggi presente negli Strumenti per i webmaster
- Recuperare l'elenco dei problemi che Google ha rilevato durante la scansione del sito
Le classi sono :
- class Entry
- class GoogleAuth
- class ManagingSites
- class ManagingSitemaps
- class ManagingMessages
- class Keywords
- class CrawlIssues
La prima operazione da effettuare prima di utilizzare le classi è l' autenticazione tramite il metodo statico della classe GoogleAuth :
$auth = GoogleAuth::getAuth("email","password","sitemaps");Il terzo parametro sitemaps indica la tipologia di API Google a cui vogliamo accedere. Una volta ottenuto il token $auth è possibile utilizzare le classi ed effettuare le operazioni. Basta passare $auth nel costruttore di ciascuna classe e richiamare i metodi. Adesso per ogni classe vediamo metodi ed esempi.
La classe Entry
Tutte le classi che vedremo in quest' articolo estendono la classe GoogleWebmasterTool, che implementa il metodo getDataResult($site) che non fa altro che ritornare una lista di elementi in XML formato Feed, e mappare tali elementi in array di oggetti Entry. La lista riguarda il tipo di classe su cui chiamiamo il metodo. Ad esempio se viene chiamato su un istanza dell' oggetto ManagingSitemaps, ritornerà la lista delle sitemaps con diversi informazioni, inerenti al sito che gli abbiamo passato come paramatero. Ogni Entry rappresenta un elemento del Feed XML, dove è possibile accedere alle proprietà tramite il metodo getPropertyValue("keys"), dove keys può assumere diversi valori in base alla proprietà a cui desideriamo accedere. Per sapere tutte le parole chiavi utilizzabili consultare la pagina http://code.google.com/intl/it-IT/apis/webmastertools/docs/2.0/reference.html Comunque tutto ci sarà più chiaro nell' analisi di ogni singola classe.ManagingSitemaps
Tramite questa classe è possibile gestire le nostre Google Sitemaps di tipo Web, Video, Code, Mobile e News. Per prima cosa bisogna ottenere un' istanza della classe passandogli la stringa di autenticazione $auth nel costruttore :$sitemap = new ManagingSitemaps($auth);Ecco una panoramica dei metodi utilizzabili per effettuare le nostre operazioni :
Ritorna l'elenco delle sitemap inerenti al sito | $sitemap->getDataResult($site) |
Aggiunge una sitemap di tipo WEB (quella normale) , VIDEO, CODE | $sitemap->submitRegularSitemap($site,$sitemap_url, $type="WEB") |
Aggiunge una sitemap di tipo Mobile, specificando il linguaggio di markup HTML, WML, o CHTML | $sitemap->submitSitemapMobile($site, $sitemap_url, $markup_language="HTML") |
Aggiunge una sitemap di tipo News | $sitemap->submitSitemapNews($site, $sitemap_url, $publication_label="") |
$sitemap->submitRegularSitemap("http://www.tuosito.com/","http://www.tuosito.com/sitemap.xml");In questo caso abbiamo aggiunto una sitemap normale quella WEB di default. Invece per accedere alla lista delle sitemap inerenti ad un sito web basta chiamare il metodo :
$entries = $sitemap->getDataResult("http://www.tuosito.com/");Come ho accennato sopra, $entries non è altro che un array di oggetti Entry, da cui è possibile estrapolare diverse informazioni attraverso il metodo getPropertyValue("keys"). Ad esempio per poter stampare la lista delle sitemaps usiamo la chiave "wt:id" :
foreach($entries as $entry) echo $entry->getPropertyValue("wt:id");Vediamo altre keys che possiamo utilizzare :
- wt:sitemap-url-count : il numero di url presenti nella sitemap
- wt:sitemap-type : il tipo di sitemap WEB, CODE, MOBILE etc...
- wt:sitemap-last-downloaded : la data in formato RFC 3399 cioè YYYY-M-DT00:00:00.000Z, dell' ultimo download della sitemap da parte di Google
Keywords
La classe Keywords ci permette di recuperare le parole chiavi più comuni che lo spider googlebot ha rilevato durante la scansione del sito, e anche quelle presenti nel testo di ancoraggio dei link che rimandano al nostro sito. Vediamo un esempio :$keywords = new Keywords($auth); $keys = $keywords->getDataResult("http://www.simplesoft.it/");La variabile $keys non è altro che un array contenente le chiavi suddivise in internal quelle presenti nel nostro sito, ed external relative all' anchor text. Ad esempio se vogliamo stampare quelle internal :
$keysInternal = $keys['internal']; foreach($keysInternal as $k) echo $k."<br>"per quelle external:
$keysExternal = $keys['external']; foreach($keysExternal as $k) echo $k."<br>"
CrawlIssues
Con questa classe possiamo accedere alla lista degli errori o problemi, segnalazioni rilevati da googlebot durante il processo di scansione. Esempio :$crawlIusses = new CrawlIusses($auth); $entries = $crawlIusses->getDataResult("http://www.miosito.it/");Le proprietà di ciascun entry sono :
- wt:crawl-type : il tipo di crawler che ha rilevato il problema
- wt:issue-type : il tipo di problema, ad esempio url bloccato dal robots.txt (che comunque non è un problema ma semplicemnte una segnalazione)
- wt:url : l' url su cui è stato rilevato il problema o errore
- wt:date-detected : la data
- wt:detail : altri dettagli
Articoli correlati
8 Commenti per "Google Webmaster Tools Api in PHP"
Autore: daniele
Ciao, Ottima libreria, complimenti. Volevo sapere se sara' portata a termine la libreria per il Webmaster tool di Google anche con la parte nuova che riguarda le statistiche avanzate come la velocita' di scansione del sito, i malware ecc. Grazie e complimenti ancora. Daniele
mercoledì 09 dicembre 2009 ore 20:34
Autore: Antonio Coschignano
Ciao Daniele, grazie. Le classi ManagingSites e ManagingMessages saranno portati a termine al più presto, mentre per quanto riguarda le nuove funzionalità di google (ottime direi) velocità di scansione e malware, ancora purtroppo Google non ha rilasciato le API. Ma non appena verrano rese diponibili aggiornerò la librearia. Ciao e grazie ancora
mercoledì 09 dicembre 2009 ore 22:37
Autore: daniele
Molto bene :) HO provato le lib, ho riscontrato un errore di battitura sul nome della classe crawlerissues. Anche correggendo tale errore, pultroppo pero' sembra non funzionare piu' la libreria. Un'altro piccolo warning invece deriva dal fatto che la classe per l'auth l'hai fatta che accetta 3 paramentri , mentre qui ne passi solo due.. Puoi darmi conferma che invece a te continua funzionare? Pultroppo a me non funziona la lib :-( Grazie.
giovedì 10 dicembre 2009 ore 02:22
Autore: daniele
ho fatto un controllo, il problema dovrebbe riguardare l'autenticazione . Mi restituisce un errore 401 ... Pero' i miei dati sono giusti..
giovedì 10 dicembre 2009 ore 02:31
Autore: Antonio Coschignano
Le librerie sono state corrette, c'era effettivamente un errore, è stato aggiornato anche l'articolo grazie a Daniele :-)
sabato 12 dicembre 2009 ore 10:41
Autore: Christian
Ciao Antonio, spendide librerie. Per caso le hai terminate? Ormai il post è un po' datato e spero di non arrivare in ritardo. Sto implementando il medoto ManagingSites con la verifica del sito, ma ho sempre l'errore 400. Percaso sei riuscito a validare il sito tramite metatag o httppage? Grazie mille.
mercoledì 28 aprile 2010 ore 12:36
Autore: marco
Complimenti per la classe. Non è stato fatto nessun altro aggiornamento alla classe? Purtroppo manca un metodo fondamentale, quello dell'autenticazione del sito.
domenica 16 gennaio 2011 ore 03:01
Autore: Daniele
Ciao Antonio, volevo chiederti se la classe ManagingMessages non è ancora disponibile, nel file zip non è presente. Grazie
venerdì 03 agosto 2012 ore 14:46
Lascia un commento
Tutti i commenti inseriti devono essere approvati da un amministratore prima di essere visualizzati al pubblico. Si tratta di una misura preventiva contro spam e pubblicità e non è necessario reinviare il commento. Si prega di scrivere commenti in tema. Spam e messaggi promozionali non vengono approvati.