Pokiaľ ste niekde používali autentifikáciu Google ClientLogin, tak vám pravdepodobne prestala pre pár dňami fungovať komunikácia s Google API. Od 20.4.2012 je oficiálne deprecated a podľa Google Developers Blog už je od 20.4.2015 vypnutá.
Autentifikácia pomocou ClientLogin
Stačil vám na to hociaký Google účet, ktorý mal oprávnenie s daným API komunikovať. Autentifikácia pomocou ClientLogin bola veľmi jednoduchá – poslal sa HTTP POST požiadavok s e-mailom, heslom a názvom služby voči ktorej sa chcete autorizovať. Pokiaľ boli údaje správné, v odpovedi vám API vrátilo autorizačný token.
Autentifikácia pomocou OAuth 2.0
Google doporučuje migráciu na protokol OAuth 2.0. U OAuth si už nevystačíte s bežným Google účtom. Potrebujete získať nové prístupové údaje z Google Developers Console.
Do Google Developers Console sa prihlásíte svojim Google účtom a vytvoríte si nový projekt (pokiaľ ho ešte nemáte).
 
  
  Vygenerujte si prístupové údaje. Pokiaľ bude s API komunikovať vaša aplikácia zo serveru, zvoľte možnosť „Service account“. Po vytvorení prístupových údajov si nechajte vygenerovať certifikát – P12 key.
 
  
  Ubezpečte sa, že projekt má povolený prístup k API, ktoré chcete používať – napr. Google Analytics.
 
  
  V nastaveniach danej Google služby povoľte novo vytvorenému účtu prístup.
 
  
  Komunikácia s API
Na komunikáciu s API môžete použiť knižnice pripravené od Google. Sú dostupné v rôznych jazykoch – od Python, cez Javu, PHP až po Node.JS.
V našom prípade si ukážeme prácu s verziou pre PHP. Dostupná je na GitHube a nainštalovať ju môžete aj cez composer:
"require": {
  "google/apiclient": "1.0.*@beta"
}Google napísal príručku a pár návodov, ale kód je dobre zdokumentovaný (napr. trieda Google_Service_Analytics_DataGa_Resource), takže práca s knižnicou je celkom pohodlná. Napríklad kód pre načítanie návštev konkrétneho webu za posledný mesiac, rozdelený do jednotlivých kanálov, vyzerá takto:
$client = new \Google_Client();
$client->setApplicationName('myAppWithOAuth');
$analytics = new \Google_Service_Analytics($client);
$credentials = new \Google_Auth_AssertionCredentials(
    '[email protected]',
    [\Google_Service_Analytics::ANALYTICS_READONLY],
    file_get_contents(__DIR__ . '/certificate.p12')
);
$client->setAssertionCredentials($credentials);
if($client->getAuth()->isAccessTokenExpired()) {
    $client->getAuth()->refreshTokenWithAssertion($credentials);
}
$data = $analytics->data_ga->get(
    'ga:82813927',
    '31daysAgo',
    'yesterday',
    'ga:visits',
    [
        'dimensions' => 'ga:date,ga:medium,ga:socialNetwork',
        'sort'=>'-ga:visits',
    ]
);