有没有一种简单的方法来链接我的谷歌日历中的事件?

时间:2010-01-29 00:52:38

标签: php google-calendar-api

我正在将我的图书馆网站从网络版迁移到谷歌日历。该网站使用PHP和HTML4.01编写(从过渡到严格)。有没有一种编程方式可以生成日历/条目的链接?使用网络摄像头,可以看到日视图的链接:

www.mylibrary.com/calendar/day.php?YYYYMMDD

因此很容易以编程方式生成指向特定日期的链接。 我一直试图找到一种方法来做类似的东西与谷歌日历,并没有太多的运气。我真的希望能够做一些像

这样的事情
<p>The summer reading program kicks off <a href="
<?php echo "http://www.google.com/calendar/event?cid=".$mycalenderid."&eventdate=".$year.$month.$day; ?>
">May 5th</a></p>

这甚至是远程可能吗?

3 个答案:

答案 0 :(得分:1)

这可能不是您希望的“简单”解决方案,但Zend Framework有gdata component可以做您想做的事。

答案 1 :(得分:0)

在您的网站中包含日历的最简单方法是使用Google提供的嵌入式日历:http://code.google.com/apis/calendar/publish/。好处是你要做的就是将iframe代码扔进一个页面并链接到它。缺点是,据我所知,没有机制可以链接到特定的日期或事件。

要做一些类似于你所要求的事情,你需要使用zend Gdata组件并自己编程。所以,对于days.php,你可以做类似的事情:


<?php
/**
 * Adapted from google API doc example
 */
$day = $_GET['day'];
$nextDay = date('Y-m-d', strtotime($day) + 86400);

$client = new Zend_Gdata_Calendar(); //Not authenticated for public calendar

$query = $gdataCal->newEventQuery($client);
$query->setUser('user@example.com');
$query->setVisibility('public');
$query->setProjection('full');
$query->setOrderby('starttime');
$query->setStartMin($day); //Inclusive
$query->setStartMax($nextDay); //Exclusive
$eventFeed = $gdataCal->getCalendarEventFeed($query);

?>
<h1>
  <?php print $day; ?>
</h1>
<ul id="days-events">
  <?php foreach ($eventFeed as $event): ?>
    <li class="event">
      <?php print $event->title->text ?>
    </li>
  <?php endforeach; ?>
</ul>

Google文档: http://code.google.com/apis/calendar/data/1.0/developers_guide_php.html

Zend文档: http://framework.zend.com/manual/en/zend.gdata.calendar.html

答案 2 :(得分:0)

更简单的解决方案:

if($_REQUEST['showday']!='') {$datetoshow=$_REQUEST['showday'];
$datetoshow = $datetoshow."/".$datetoshow;}

Blah blah页面内容

if ($datetoshow==""){?>
<iframe srtc=""> .... // regular embed text goes here.
<?} else {?>
<iframe src=""> // Add &amp;mode=DAY&amp;dates=<?echo $datetoshow;?> to the SRC code
<?}

然后就像调用页面w / day.php?showday = 20100205或我想要的任何一天一样简单。 谢谢你提出的所有建议!