Comment me connecter à L'API Google Calendar sans l'authentification oAuth?

j'ai étudié L'API Google Calendar et les documents sur l'authentification ( http://code.google.com/apis/calendar/v3/using.html#auth ). Il semble que le cas d'utilisation mentionnée ici est l'écriture d'une application qui accède au calendrier de l'utilisateur. Cependant, je suis en train d'écrire une page Web qui va accéder au calendrier du propriétaire du site web et afficher seulement l'information de ce calendrier. Donc, je ne veux pas l'utilisateur à entrer leurs informations de compte Google qui est ce oAuth veut le faire.

fondamentalement, je suis à la recherche d'un moyen d'accéder à un calendrier Google privé unique et authentifier en passant les justificatifs d'identité directement au service.

il y a des questions similaires ici: comment utiliser OAuth avec Google Calendar pour accéder à un seul calendrier? cela semble indiquer qu'à l'origine, l'avis de concours était transmis directement aux candidats. Cette fonctionnalité est-elle encore disponible? Comment gérez-vous la cas d'utilisation que j'ai décrit?

28
demandé sur Community 2012-01-25 02:51:41

2 réponses

j'ai le même problème. J'ai trouvé ce tutoriel en 3 parties qui fait exactement ce que vous voulez . page Web pour les réservations

Vous créez une page web qui écrit directement dans votre propre calendrier (pas les utilisateurs) et c'est pourquoi les utilisateurs n'ont pas à vous donner l'autorisation d'accéder à son calendrier.

Cette solution fonctionne pour moi, mais vous devez la gérer directement avec le repos.



Je suis vous cherchez un moyen d'utiliser google api client php parce qu'il semble un peu plus simple. Mais je n'ai pas encore trouvé le moyen de bien éditer l'api-google-PHP-client/src/config.fichier php pour travailler dans une voie où vous vous authentifiez-vous à ne pas le réel de l'utilisateur, parce que vous avez besoin d'accéder à votre agenda. Si quelqu'un a une idée ou un script qui ferait que je serais très reconnaissant.

11
répondu Andrej Bergant 2012-01-26 13:52:12

si Je ne me trompe pas, ils ont lancé un compte Service pour ça maintenant: https://developers.google.com/accounts/docs/OAuth2ServiceAccount

Edit:

Voici la modification de leur API de prédiction

session_start();
require_once "google-api-php-client/src/Google_Client.php";
require_once "google-api-php-client/src/contrib/Google_CalendarService.php";

const CLIENT_ID = '...';
const SERVICE_ACCOUNT_NAME = '...';

// Make sure you keep your key.p12 file in a secure location, and isn't
// readable by others.
const KEY_FILE = '...';

$client = new Google_Client();
$client->setApplicationName("...");


if (isset($_SESSION['token'])) {
 $client->setAccessToken($_SESSION['token']);
}

// Load the key in PKCS 12 format (you need to download this from the
// Google API Console when the service account was created.
$key = file_get_contents(KEY_FILE);
$client->setAssertionCredentials(new Google_AssertionCredentials(
    SERVICE_ACCOUNT_NAME,
    array('https://www.googleapis.com/auth/calendar', "https://www.googleapis.com/auth/calendar.readonly"),
    $key)
);

$client->setClientId(CLIENT_ID);
$service = new Google_CalendarService($client);

//Save token in session
if ($client->getAccessToken()) {
  $_SESSION['token'] = $client->getAccessToken();
}

//And now you can use the code in their PHP examples, like: $service->events->listEvents(...)
15
répondu gX. 2012-10-18 06:49:55