Google Kalender API

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Google Kalender API

    Hallo,

    ich hab ein Script das mir Termine in den Google Kalender eintragen soll.
    Das funktioniert auch soweit ganz gut.

    Jedoch soll das ein Cronjob in zukunft von alleine tun, aber wie wenn ich den Zugriff per OAuth bestätigen muss.

    Das Script fragt den accesstoken ab und das schafft der Cron ja nicht.

    Gibt es eine Möglichkeit das auch ohne zu tun?

    Code:
    <?php
        require_once 'google-api-php-client/src/Google_Client.php';
        require_once 'google-api-php-client/src/contrib/Google_CalendarService.php';
        session_start();
        $client = new Google_Client();
        $client->setApplicationName("Google Calendar PHP Starter Application");
        // Visit https://code.google.com/apis/console?api=calendar to generate your
        // client id, client secret, and to register your redirect uri.
        $client->setClientId('xxxxx.apps.googleusercontent.com');
        $client->setClientSecret('xxxxx');
        $client->setRedirectUri('http://xxxxx.de');
        $client->setDeveloperKey('xxxxx');
        
        $cal = new Google_CalendarService($client);
        if (isset($_GET['logout'])) {
            unset($_SESSION['token']);
        }
        if (isset($_GET['code'])) {
            $client->authenticate($_GET['code']);
            $_SESSION['token'] = $client->getAccessToken();
            header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
        }
        if (isset($_SESSION['token'])) {
            $client->setAccessToken($_SESSION['token']);
        }
        if ($client->getAccessToken()) {
            $calList = $cal->calendarList->listCalendarList();
            print "<h1>Calendar List</h1><pre>" . print_r($calList[items][4], true) . "</pre>";
    
            $event = new Google_Event();
            $event->setSummary('Testevent');
            $event->setLocation('Daheim');
            $start = new Google_EventDateTime();
            $start->setDateTime('2012-11-03T02:00:00.000-05:00');
            $event->setStart($start);
            $end = new Google_EventDateTime();
            $end->setDateTime('2012-11-03T02:25:00.000-05:00');
            $event->setEnd($end);
            $attendee1 = new Google_EventAttendee();
            $attendee1->setEmail('xxxxx@gcffm.de');
            $attendees = array($attendee1);
            $event->attendees = $attendees;
    
            $event->setDescription("Irgend ein Text");
            
    
            $createdEvent = $cal->events->insert('xxxxxxxxxxxxxxxxxxxxxxxxxx@group.calendar.google.com', $event); //Returns array not an object
            echo $createdEvent->id;
            echo 'Done!';
        } else {
            $authUrl = $client->createAuthUrl();
            print "<a class='login' href='$authUrl'>Connect Me!</a>";
        }
    ?>

  • #2
    Stichwort: API Key – https://developers.google.com/console/help/#WhatIsKey
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Diesen Key besitze ich, jedoch kann ich damit nicht wirklich viel anfangen.
      Hast du, oder jemand anderes vielleicht eine Idee oder einen Tipp wie sich das in mein Beispiel einbauen lässt?

      Kommentar


      • #4
        Weißt du überhaupt, was "cron" macht? Wenn dein PHP Script etwas kann, dann kann es der cron auch. Weil der cron einfach nur das PHP-Skript ausführt.
        This is what happens when an unstoppable force meets an immovable object.

        Kommentar


        • #5
          ja klar, aber wie setzt man soetwas um?
          Normalerweise muss ich mich mit meinem Google-Account einloggen, den zugriff gewähren und dann das Script erneut ausführen.

          Aber ein Cron macht das ja nicht

          Kommentar


          • #6
            Also mitlerweile hab ich herausgefunden das man eine Datei mit der endung p12 brauch.
            Diese hab ich, und auch das Beispielscript versucht anzupassen. Aber es will mir nicht gelingen ohne oauth zugriff auf dem kalender zu bekommen.

            Weiß niemand abhilfe?

            Kommentar


            • #7
              Erstmal Hallo zusammen,

              bin ganz neu hier regestriert, aufgrund des Themas dieses Post.

              ich versuche ähnliches zu lösen wie es möglich ist Einträge in den Kalender vom google zu tätigen ohne sich im Browser einloggen zu müssen.

              Hintergrund ist der das ich gerade ein Web-App für mich erstelle in der ich Kundenbestellungen Eintrage und diese zu einem bestimmtem Termin im Google Kalender eintragen will.
              Bzw. soll der Kunde über die Web-App ein Bestellung tätigen und dazu ein Liefertermin eintragen.
              Dies soll automatisch in den Google Kalender eingetragen werden.

              Im Beispielscript von google ist es ja nötig sich einzuloggen händisch, leider habe ich im Moment kein Plan wie ich dies umgehen kann.

              Wäre es zb. möglich die genierte Url zum einloggen per php zu senden?

              Beschäftige mich zwar schon länger mit php, aber eher sporadisch, wie ich es gerade brauche.

              Liebe Grüße
              Ennox

              Kommentar

              Lädt...
              X