Привет, я пытаюсь перенести мой php-скрипт v2 api в v3, но я не знаю, что делать...
Я прочитал руководство по миграции Google Calendar API Version 3.0, но не знаю, будет ли работать с zend_gdata или что делать.
<?php
} else {
// load classes
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Calendar');
Zend_Loader::loadClass('Zend_Http_Client');
// connect to service
$title = $_POST['ACTUACION']."/".$_POST['NOMBRE']."/".$_POST['TELEFONO'];
$title = strtoupper($title);
$where = $_POST['MUNICIPIO']."/".$_POST['DIRECCION'];
$where = strtoupper($where);
$description = $_POST['CAPTACION']."/".$_POST['ESTADO']."/".$_POST['PROCEDENCIA'].$_POST['PROCEDENCIA2']."/".$_POST['REFPROCEDENCIA'];
$description = strtoupper($description);
$gcal = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
$user = $_POST['email'];
$pass = $_POST['pass'];
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $gcal);
$gcal = new Zend_Gdata_Calendar($client);
// validate input
if (empty($title)) {
die('ERROR: Missing title');
}
if (!checkdate($_POST['sdate_mm'], $_POST['sdate_dd'], $_POST['sdate_yy'])) {
die('ERROR: Invalid start date/time');
}
if (!checkdate($_POST['sdate_mm'], $_POST['sdate_dd'], $_POST['sdate_yy'])) {
die('ERROR: Invalid start date/time');
}
if (($_POST['sdate_hh']) < ($_POST['edate_hh'])){
die('ERROR: Hora de fin incorrecta');
}
$horas_inicio = $_POST['hora_inicio'];
list ($sdate_hh, $sdate_ii) = split('[:]', $horas_inicio);
$horas_fin = $_POST['hora_fin'];
list ($edate_hh, $edate_ii) = split('[:]', $horas_fin);
$title = htmlentities($title);
$start = date(DATE_ATOM, mktime($sdate_hh,$sdate_ii,
0, $_POST['sdate_mm'], $_POST['sdate_dd'], $_POST['sdate_yy']));
$end = date(DATE_ATOM, mktime($edate_hh, $edate_ii,
0, $_POST['sdate_mm'], $_POST['sdate_dd'], $_POST['sdate_yy']));
// construct event object
// save to server
try {
$event = $gcal->newEventEntry();
$event->title = $gcal->newTitle($title);
$event->where = array($gcal->newWhere($where));
$event->content = $gcal->newContent($description);
$when = $gcal->newWhen();
$when->startTime = $start;
$when->endTime = $end;
$event->when = array($when);
$gcal->insertEvent($event);
} catch (Zend_Gdata_App_Exception $e) {
echo "Error: " . $e->getResponse();
}
echo 'CITA CREADA!</br>';
echo "<form method=\"post\" action=\"calendar.php\">";
$user = $_POST['email']; $pass = $_POST['pass'];
echo "<input name=\"email\" type=\"hidden\" value=".$user."\"/>";
echo "<input name=\"pass\" type=\"hidden\" value=".$pass."\"/>";
echo "<input type=\"submit\" value=\"INTRODUCIR MAS CITAS\" />";
echo "</form>";
echo '<a href="https://www.google.com/calendar" target="_blank">Acceder al Calendario</a>';
}
?>
Вот мой код, и с этим я вставляю все события в календаре, как я могу изменить работу с ключом Google Calendar v3?
Спасибо заранее и извините мой английский.
Вы должны начать с шагов первого приложения при настройке V3 здесь: https://developers.google.com/google-apps/calendar/firstapp
Затем продолжите загрузку клиентской библиотеки PHP из раздела "Загрузки": https://developers.google.com/google-apps/calendar/downloads
В конце следуйте примеру в ссылке: https://developers.google.com/google-apps/calendar/v3/reference/events/insert, но замените все типы "Событие" -related на "Google_Service_Calendar_Event" в качестве новые клиентские библиотеки изменили имена.
Я, наконец, получил этот материал, чтобы начать работать и много искать. Раньше я также использовал Zend. В Daimto.com есть очень хороший сайт, где вы можете увидеть кучу учебников. Вот код, который работал для меня, чтобы добавить событие, используя форму кода Daimto.com, и добавить код для добавления события в тело. Помните, что вам нужно также добавить служебную электронную почту в свой календарь Google!
<?php
session_start();
require_once './google-api-php-client/src/Google/Client.php';
require_once './google-api-php-client/src/Google/Service/Calendar.php';
$client_id = '6846057_YOUR_CLIENT_ID_HERE_pg3q8r6.apps.googleusercontent.com';
$Email_address = '68460_YOUR_SERVICE_EMAIL_HERE_developer.gserviceaccount.com';
$key_file_location = '_KEY_FILE_LOCATION_HERE_8.p12';
$client = new Google_Client();
$client->setApplicationName("_APP_NAME_HERE_");
$key = file_get_contents($key_file_location);
// seproate additional scopes with a comma
$scopes ="https://www.googleapis.com/auth/calendar";
$cred = new Google_Auth_AssertionCredentials(
$Email_address,
array($scopes),
$key
);
$client->setAssertionCredentials($cred);
if($client->getAuth()->isAccessTokenExpired()) {
$client->getAuth()->refreshTokenWithAssertion($cred);
}
$service = new Google_Service_Calendar($client);
?>
<html><body>
<?php
//
$event = new Google_Service_Calendar_Event();
$event->setSummary('Event 2');
$event->setLocation('Somewhere');
$start = new Google_Service_Calendar_EventDateTime();
$start->setDateTime('2015-06-22T19:00:00.000+01:00');
$start->setTimeZone('Europe/London');
$event->setStart($start);
$end = new Google_Service_Calendar_EventDateTime();
$end->setDateTime('2015-06-22T19:25:00.000+01:00');
$end->setTimeZone('Europe/London');
$event->setEnd($end);
//
$calendar_id = "[email protected]";
//
$new_event = null;
//
try {
$new_event = $service->events->insert($calendar_id, $event);
//
$new_event_id= $new_event->getId();
} catch (Google_ServiceException $e) {
syslog(LOG_ERR, $e->getMessage());
}
//
$event = $service->events->get($calendar_id, $new_event->getId());
//
if ($event != null) {
echo "Inserted:";
echo "EventID=".$event->getId();
echo "Summary=".$event->getSummary();
echo "Status=".$event->getStatus();
}
?>