我试图直接从php脚本向Google日历添加活动,但收到此错误:
致命错误:在非对象上调用成员函数insert()...
<?php
set_include_path("scripts/google-api-php-client/src/" . PATH_SEPARATOR . get_include_path());
$path = $_SERVER['DOCUMENT_ROOT'];
$google_client = $path . '/xxxx/scripts/google-api-php-client/src/Google_Client.php';
include ($google_client);
require_once $path . '/xxxx/scripts/google-api-php-client/src/contrib/Google_CalendarService.php';
$event = new Google_Event();
$event->setSummary('Pi Day');
$event->setLocation('Math Classroom');
$start = new Google_EventDateTime();
$start->setDateTime('2013-03-14T10:00:00.000-05:00');
$event->setStart($start);
$end = new Google_EventDateTime();
$end->setDateTime('2013-03-14T10:25:00.000-05:00');
$event->setEnd($end);
// error is on this next line
$createdEvent = $cal->events->insert('some_calendar@gmail.com', $event);
echo $createdEvent->id;
?>
我在许多示例中看到过,有些人使用类似的代码:
$client = new Google_Client();
$client->setApplicationName("Google Calendar PHP Event Creator");
$client->setClientId('MY CLIENT ID ADDRESS IS HERE');
$client->setClientSecret('MY CLIENT SECRET KEY IS HERE');
$client->setRedirectUri('http://localhost/phpt/caladd.php');
$client->setDeveloperKey('MY API KEY IS HERE');
$cal = new Google_CalendarService($client);
但是在我看来,有些应用程序正在被引用,并且正在生成日历事件。在我的情况下,理想情况下,我只是希望我的PHP脚本来制作日历条目。没有其他的应用程序&#34;参与。
我是否需要拥有Google_Client才能在Google日历中添加简单条目?这对我来说似乎过分,但也许这是实现这一目标的唯一方法。
我是否忽视了这个过程中的一步?或者我写的代码中是否有错误。任何帮助表示赞赏,包括示例链接。谢谢。
答案 0 :(得分:1)
您正在尝试这样做:
$cal->events->insert
但是我没有一个名为$cal
的对象。创建一个符合您尝试的新$cal
实例,然后执行插入。
答案 1 :(得分:1)
您必须在Google Developer's Console上注册您的应用程序,如果您要使用new official PHP Client Library,则必须使用Google_Client()类并设置所有这些值才能访问API服务。
我建议你从这里开始:Write your First App
这些页面上的示例代码使用旧的PHP库,但您可以了解应该做什么并将它们转换为新的lib(大多只使用新的类名称 - 检查源代码)。