簡體   English   中英

從腳本中將事件插入谷歌日歷

[英]Inserting Events to google calendar from a script

任何人都知道正確的方法來驗證和直接發布到日歷而不依賴於當前登錄的用戶? 幾個星期前,我構建了一個使用標准Oauth 2.0協議的日歷,但這依賴於用戶瀏覽器存儲的會話。 我有一個日歷,我想從我用基本PHP框架編寫的應用程序傳遞事件。 我更關心其他人使用的最佳做法。 你的答案可能很簡單,不要這樣做。 非常感謝。

嘗試Zend_Gdata_Calendar使用此庫,您可以從谷歌日歷插入或獲取任何用戶的事件(顯然具有正確的用戶名和密碼),並與您自己的日歷集成或顯示它。這里有一個簡短的例子:

    $service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
    $client = Zend_Gdata_ClientLogin::getHttpClient('gmail@user.com',    'gmailpassword', $service);
    $service = new Zend_Gdata_Calendar($client);



    $query = $service->newEventQuery();
    $query->setUser('default');
    $query->setVisibility('private');


    try {
         $eventFeed = $service->getCalendarEventFeed($query);
    } catch (Zend_Gdata_App_Exception $e) {
        echo "Error: " . $e->getMessage();
    }


    echo "<ul>";
    foreach ($eventFeed as $event) {
     echo "<li>" . $event->title . " (Event ID: " . $event->id . ")</li>";

    }
    echo "</ul>";



    $eventURL = "http://www.google.com/calendar/feeds/default/private/full/Dir0FthEpUbl1cGma1lCalendAr";

    try {
        $event = $service->getCalendarEventEntry($eventURL);

        echo 'Evento: ' . $event->getTitle() .'<br>';
        echo 'detalles: ' . $event->getContent().'<br>';
        foreach ($event->getWhen() as $dato)
        {
            echo 'inicia: ' . substr($dato->startTime, 0,-19) . ' a las: ' . substr($dato->startTime, 11,-10) .'<br>';
            echo 'termina: ' .substr($dato->endTime,0,-19) . ' a las: ' . substr($dato->endTime,11,-10) .'<br>';

        }  



    } catch (Zend_Gdata_App_Exception $e) {
        echo "Error: " . $e->getMessage();
    }

使用此功能,您可以使用郵件和密碼從任何用戶的日歷表格中添加,更新,編輯或刪除事件...

啟用離線時,使用OAuth 2和授權代碼流(Web服務器流)。 存儲刷新令牌(無限期地持續到用戶撤銷為止),即使用戶當前未登錄,您也可以將事件上傳到Google日歷。

更多信息: https//developers.google.com/accounts/docs/OAuth2WebServer#offline

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM