【发布时间】:2014-02-19 18:20:43
【问题描述】:
我正在开发 Google 日历的 PHP API,我之前使用过 Zend 库,我正在升级到 API V3,我下载了 Git Hub 客户端库 v1.0。 我已完成 oAuth 2,并将刷新令牌存储在数据库中。我可以将事件连接到 Google 日历并将其写入,这主要归功于 StackOverflow 的贡献者。谢谢
我的问题是我无法删除事件。我正在连接 oAuth 2 并检索事件 ID
$service->events->delete('primary', $event->getId());
这会生成致命错误:在 C:\wamp\www\new-roster-decoder\src\Google\IO\Stream.php 中带有消息“HTTP 错误:无法连接:'0'”的未捕获异常“Google_IO_Exception”在第 128 行
我到处寻找,但无法找到解决方案。请帮忙谢谢
已解决 由于艾米丽的好建议,这已经解决了 由于GZIP的问题已经解决,解决方案从GitHub下载了最新的API。 出于兴趣,我最初在 congig.php 中注释掉了 GZIP 并修复了它,但随后我失去了性能优势,然后新库对其进行了排序。 得到教训。 Stackoverflow 的用户非常乐于奉献自己的时间,并且总是尝试最新的软件 编辑结束
<?php
/// This works
session_start();
set_include_path("src/" . PATH_SEPARATOR . get_include_path());
require_once 'Google/Client.php';
require_once 'Google/Service/Calendar.php';
require_once 'account/dbc.php';
$client_id = 'XXXXXXXXXX.apps.googleusercontent.com';
$client_secret = 'XXXXXXXXXXX';
$redirect_uri = 'http://localhost:80/new-roster-decoder/account/GoogleoAuth.php';
$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);
$client->addScope("https://www.googleapis.com/auth/calendar");
$client->setAccessType('offline');
$users_rs_settings = mysqli_query($link,"select * from users WHERE id = 118");
$users_array = mysqli_fetch_array($users_rs_settings);
$refresh_token = $users_array['refresh_token']; //2010-04-06
$client->refreshToken($refresh_token);
$service = new Google_Service_Calendar($client);
$event = new Google_Service_Calendar_Event();
$event->setSummary('Positioning TX');
$event->setLocation('BRS-LGW');
$start = new Google_Service_Calendar_EventDateTime();
$start->setDateTime('2014-02-19T14:00:00.000-00:00');
$start->setTimeZone('Europe/London');
$event->setStart($start);
$end = new Google_Service_Calendar_EventDateTime();
$end->setDateTime('2014-02-19T17:25:00.000-00:00');
$end->setTimeZone('Europe/London');
$event->setEnd($end);
// insert ext properties
$rdname = "RosterDecoderID";
$rdvalue = 1;
$extendedProperties = New Google_Service_Calendar_EventExtendedProperties();
$extendedProperties->setPrivate(array($rdname=>$rdvalue));
$event->setExtendedProperties($extendedProperties);
// end of insert ext properties
$createdEvent = $service->events->insert('primary', $event);
echo $createdEvent->getId()."\n\n";
$_SESSION['access_token'] = $client->getAccessToken();
var_dump($_SESSION['access_token']);
var_dump($event);
$minCheck = date(DATE_ATOM, mktime(0, 0, 0, date("m"), date("d"), date("Y") ));
$maxCheck = date(DATE_ATOM, mktime(0, 0, 0, date("m"), (date("d")+1), date("Y") ));
$optParams = array( 'privateExtendedProperty' => 'RosterDecoderID=1','timeMin' => $minCheck, 'timeMax' => $maxCheck);
$events = $service->events->listEvents('primary', $optParams);
while(true) {
foreach ($events->getItems() as $event) {
$eventID = $event->getId();
//////////////////////////////////////////////////////////
//This bit throws an error
$service->events->delete('primary', $event->getId());
/////////////////////////////////////////////////////////
// The error is
// Fatal error: Uncaught exception 'Google_IO_Exception' with message 'HTTP Error: Unable to connect: '0'' in C:\wamp\www\new-roster-decoder\src\Google\IO\Stream.php on line 128
echo $event->getSummary();
echo $event->getId()."\n\n";
}
}
?>
【问题讨论】:
-
嘿,这看起来可能与 php 客户端库有关。看看这个线程,看看它是否有帮助! stackoverflow.com/questions/21428180/…
标签: php google-calendar-api google-oauth google-api-php-client