API Google Agenda: sélection / création de calendriers?
Donc, je veux que notre calendrier de travail pour synchroniser automatiquement avec chaque employé de Google Agenda, lorsque le responsable de l'ordonnancement des postes/mises à jour de la grille des programmes. Les utilisateurs ont d'abord opt-in à l'aide de la AuthSub jeton, mais après cela, il devrait être automatique. Afin d'éviter des conflits avec d'autres événements qu'ils ont prévu, je veux créer un nouveau calendrier appelé "Travail de l'App" ou autre chose d'assez unique. Ensuite pour les mises à jour, il serait tout simplement de supprimer tous les événements de cette plage avant de créer de nouveaux événements. J'ai donc quelques questions...
- Comment puis-je sélectionner le calendrier précis je veux à l'aide de l'API? (tout cela en PHP, par la manière, en utilisant le Zend Framework). Je vois où je peux requête pour la liste des calendriers, mais la documentation n'est pas de montrer comment ajouter à ce calendrier.
- Puis-je créer des calendriers? Ai-je besoin d'avoir les utilisateurs qui choisissent de créer un tel calendrier? Si oui, est-il une URL que j'ai pu générer pour créer l'un comme pour l'ajout d'événements? (Rien à faire des choses simples et cohérentes, non?)
- Je ne veux pas que les utilisateurs de stocker leurs informations d'identification, évidemment, mais je ne veux pas de demande d'accès pour chaque mise à jour. Ai-je besoin d'un jeton OAuth pour persistantes d'accès? Je sais que le jeton d'URL est utilisable qu'une seule fois, mais puis-je stocker jeton de session et de le réutiliser une semaine plus tard?
- Est-il un moyen autre que l'interrogation de chaque événement pour éviter les doublons? J'ai été le tester hier soir et j'ai maintenant 7 instances de la même 50 événements. Je ne veux pas ajouter à l'heure du serveur avec la fonction de vérification avant chaque ajout.
- Enfin, est-il possible d'ajouter plusieurs événements, ou même tout simplement de pousser le fichier ics pour le calendrier. Droit maintenant, j'ai le script de faire une requête SQL et ajouter chaque événement comme il parcourt les résultats. Il semble prendre beaucoup plus de temps que prévu, donc, juste de la création du fichier ics ou l'ajout de tous les événements d'un objet et de les ajouter tout à la fois serait mieux.
Merci!
source d'informationauteur Anthony
Vous devez vous connecter pour publier un commentaire.
Eh bien, puisque personne n'a répondu, j'ai décidé de commencer à fouiller à la non-documentation PHP pour le Calendrier Google API, en particulier à l' .NET trucs et un peu dans le protocole raw. Et ne savez-vous pas...
Si vous allez à l' .NET de la documentation, il mentionne cool nouveau fonctionnalités, en particulier, la façon de créer de nouveaux non-primaire calendriers pour les utilisateurs authentifiés et comment ajouter des événements à la non-primaire calendriers.
Bien sûr, cette documentation se montre nulle part dans le PHP de la zone, et il ne semble pas être un one-to-one corrélation. Pour la création du nouveau calendrier, j'ai essayé quelques évident d'abord, puis, en passant à tout pour le tout, essayé quelque chose n'est pas si évidente que travaillé. J'ai pensé partager dans le cas où la raison pour laquelle le silence radio était que l'on ne connaissait pas la réponse, mais vous souhaite d'.
Pour créer un nouveau calendrier:
Il y a deux clés:
Vous devez utiliser la même méthode pour l'ajout d'événements de calendrier, qui est
insertEvent()
Vous devez définir l'URL de message dans la méthode, qui, sinon, va à la valeur par défaut l'URL d'un flux.
Cet exemple vérifie si l'Application Calendrier existe déjà et si pas, il crée:
Et là vous l'avez. Le prochain objectif est d'insérer des événements de calendrier, pas les de calendrier par défaut.
Ajout d'événements pour les non-calendrier principal
La partie la plus facile que vous pouvez probablement le deviner, c'est que vous avez besoin pour le mettre en option URL de nouveau, comme tel :
insertEvent($newEvent, $calURL)
la partie difficile est d'obtenir le calendrier de l'URL. Contrairement à la "propriété calendriers" chemin d'accès, des calendriers particuliers n'ont pas seulement l'utilisateur specifique info, ils ont une sorte de hash-lookin' ID.Voici le code:
Merci à quiconque de lire ma question et n'a aucune réflexion sur le sujet. Si quelqu'un connaît un moyen de serrer le code ci-dessus (peut-être que je n'ai pas besoin de deux boucles?) J'aimerais obtenir de la rétroaction.
Je crois Anthony est en se référant soit à la v1 docs ou la v2 docs sur le Calendrier Google Api site.
J'ai réussi assez facilement en Perl, en suivant les v2 protocole de guide.
La clé est de changer l'URL que vous postez. Au lieu de la valeur par défaut "/calendrier/rss/default/privé/full", la première extraction de la liste des calendriers, puis obtenir le contenu/@src valeur de l'agenda que vous voulez, et de les poster pour que, par exemple, /calendrier/feeds/1234567890abcdefeg%40group.calendrier.google.com/private/plein