IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Web Service] Google Apps Calendar et Service Account


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    489
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 489
    Points : 388
    Points
    388
    Par défaut [Web Service] Google Apps Calendar et Service Account
    Bonjour,

    Je cherche à m'authentifier en utilisant Service Account (donc directement dans mon appli, sans authentification de l'utilisateur) sur Google Apps Calendar.

    J'ai trouvé plein de documentation sur ce sujet.. mais je ne comprends pas très bien ce que j'oublie .. en tout cas, l'authentification ne passe pas.. Au debut je l'avais fait en mode "Client ID for web app" ca ca marche sans problèmes.. Mais en service account ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <?php
    session_start();
     
    require_once __DIR__ . '/google-api-php-client/src/Google_Client.php';
    require_once  __DIR__ . '/google-api-php-client/src/contrib/Google_CalendarService.php';
     
     
    define('SERVICE_ACCOUNT_NAME', 'SERVICE_ACCOUNT_NAME.apps.googleusercontent.com');
    define('CLIENT_ID', 'CLIENT_ID@developer.gserviceaccount.com');
    define('KEY_FILE', './../../private/MYKEY-privatekey.p12');
     
     
    $client = new Google_Client();
    $key = file_get_contents(KEY_FILE);
    $client->setClientId(CLIENT_ID);
    $client->setAssertionCredentials(new Google_AssertionCredentials(
      SERVICE_ACCOUNT_NAME,
      array('https://www.googleapis.com/auth/calendar'),
      $key)
    );
     
    if (isset($_SESSION['token'])) {
     $client->setAccessToken($_SESSION['token']);
    }
    $cal = new Google_CalendarService($client);
     
    if ($client->getAccessToken()) {
    	$calList = $cal->calendarList->listCalendarList();
    	print "<h1>Calendar List</h1><pre>" . print_r($calList, true) . "</pre>";
    	$events = $cal->events->listEvents('primary');
    	print "<h1>Events on primary calendar List</h1><pre>" . print_r($events, true) . "</pre>";
    }
    echo "<pre>";
    var_dump($client);
    echo "</pre>";

    Tout ce que j'obtiens c'est un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    object(Google_Client)#1 (4) {
      ["scopes":protected]=>
      array(0) {
      }
      ["useObjects":protected]=>
      bool(false)
      ["services":protected]=>
      array(1) {
        ["calendar"]=>
        array(1) {
          ["scope"]=>
          array(2) {
            [0]=>
            string(40) "https://www.googleapis.com/auth/calendar"
            [1]=>
            string(49) "https://www.googleapis.com/auth/calendar.readonly"
          }
        }
      }
      ["authenticated":"Google_Client":private]=>
      bool(false)
    }

    Je capte pas trop d'ou vient le souci.. Des suggestions ?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    489
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 489
    Points : 388
    Points
    388
    Par défaut
    ok je crois que j'ai trouvé pourquoi..

    Warning: Very few Google APIs currently support Service Accounts. Service accounts are currently supported by the following Google developer services:

    Google Cloud Storage
    Google Prediction API
    Google URL Shortener
    Google OAuth 2.0 Authorization Server
    Google BigQuery

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/09/2014, 17h29
  2. Consommer un web service local depuis une app google
    Par pepito3364 dans le forum APIs Google
    Réponses: 4
    Dernier message: 01/09/2014, 16h44
  3. [Autres] Google Calendar API + Service Account = Invalid_grant
    Par StringBuilder dans le forum APIs Google
    Réponses: 1
    Dernier message: 26/08/2014, 16h51
  4. [Web Service][Google Calendar API] Requetes http get
    Par alexandreb3 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 06/05/2010, 15h50
  5. [Web Service][PHP Script] Google API Search
    Par franck.automaticien dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 20/07/2007, 11h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo