Я хочу использовать google api v3 freebusy (php), чтобы найти бесплатную бесплатную информацию трех моих календарей, но я не нашел правильного окончания моего кода. Я хочу получить доступ к значениям «calendars – busy» для $ freebusy-response.
Поскольку в api-reference нет примера-кода, и я не мог найти какой-либо рабочий код в Интернете (но многие люди просили его), вы, ребята, моя последняя надежда на то, чтобы это запустилось.
... $service = new Google_CalendarService($client); // successfully connected $freebusy = new Google_FreeBusyRequest(); $freebusy->setTimeMin('2013-07-08T08:00:00.000-07:00'); $freebusy->setTimeMax('2013-07-08T10:00:00.000-07:00'); $freebusy->setTimeZone('Europe/Berlin'); $freebusy->setGroupExpansionMax(10); $freebusy->setCalendarExpansionMax(10); $mycalendars= array("my_calendar_id1@developer.gserviceaccount.com","my_calendar_id2@group.calendar.google.com","my_calendar_id3@group.calendar.google.com"); $freebusy->setItems = $mycalendars; $createdReq = $service->freebusy->query($freebusy); echo $createdReq->getKind(); // works echo $createdReq->getTimeMin(); // works echo $createdReq->getTimeMax(); // works $s = $createdReq->getCalendars($diekalender); Print_r($s, true); // doesn't show anything // needed: the value of "calendars": { (key): { "busy" - array of one or all calendars
Это то, что говорит API-ответ об ответе:
{ "kind": "calendar#freeBusy", "timeMin": datetime, "timeMax": datetime, "groups": { (key): { "errors": [ { "domain": string, "reason": string } ], "calendars": [ string ] } }, "calendars": { (key): { "errors": [ { "domain": string, "reason": string } ], "busy": [ { "start": datetime, "end": datetime } ] } } }
Вот мое разрешение (только часть setItems вашего кода неверна):
$freebusy_req = new Google_FreeBusyRequest(); $freebusy_req->setTimeMin(date(DateTime::ATOM, strtotime($date_from))); $freebusy_req->setTimeMax(date(DateTime::ATOM, strtotime($date_to))); $freebusy_req->setTimeZone('America/Chicago'); $item = new Google_FreeBusyRequestItem(); $item->setId('{calendarId}'); $freebusy_req->setItems(array($item)); $query = $service->freebusy->query($freebusy_req);
Надеюсь, это поможет, ура!
$service = new Google_CalendarService($client); // successfully connected $freebusy = new Google_FreeBusyRequest(); $freebusy->setTimeMin('2013-07-08T08:00:00.000-07:00'); $freebusy->setTimeMax('2013-07-08T10:00:00.000-07:00'); $freebusy->setTimeZone('Europe/Berlin'); $freebusy->setGroupExpansionMax(10); $freebusy->setCalendarExpansionMax(10); $mycalendars = array( array("id"=>"my_calendar_id1@developer.gserviceaccount.com"), array("id"=>"my_calendar_id2@group.calendar.google.com"), array("id"=>"my_calendar_id3@group.calendar.google.com")); $freebusy->setItems($mycalendars); $createdReq = $service->freebusy->query($freebusy);