Как получить доступ к любому другому календарю Google, используя Google php API

Мне нужен доступ к любому другому пользователю Google Calendar FreeBSY с помощью Google php API. Может ли кто-нибудь помочь мне шаг за шагом, чтобы реализовать это. Я уже проверил https://developers.google.com/google-apps/calendar/v3/reference/freebusy/query но ничего полезного я не получил.

Мой подход

session_start();

require_once ('libraries/Google/autoload.php');

$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);
$client->addScope("email");
$client->addScope("profile");
$client->addScope(Google_Service_Calendar::CALENDAR);
$client->addScope(Google_Service_Calendar::CALENDAR_READONLY);
$client->setAccessType('offline'); 

$service = new Google_Service_Oauth2($client);

if (isset($_GET['code'])) {
  $client->authenticate($_GET['code']);
  $_SESSION['access_token'] = $client->getAccessToken();
  header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
  exit;
}

/************************************************
  If we have an access token, we can make
  requests, else we generate an authentication URL.
 ************************************************/
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
  $client->setAccessToken($_SESSION['access_token']);
} else {
  $authUrl = $client->createAuthUrl();
}

$client->setApplicationName("My Calendar"); //DON'T THINK THIS MATTERS
$client->setDeveloperKey($api_key); //GET AT AT DEVELOPERS.GOOGLE.COM
$cal = new Google_Service_Calendar($client);
$calendarId = 'any_other_user_email@gmail.com';

$freebusy_req = new Google_Service_Calendar_FreeBusyRequest();

$freebusy_req->setTimeMin($minTime);
$freebusy_req->setTimeMax($maxTime);
$freebusy_req->setTimeZone($time_zone);
$freebusy_req->setCalendarExpansionMax(10);
$freebusy_req->setGroupExpansionMax(10);

$item = new Google_Service_Calendar_FreeBusyRequestItem();
$item->setId($email);

$freebusy_req->setItems(array($item));

$query = $cal->freebusy->query($freebusy_req);

$response_calendar = $query->getCalendars();
$busy_obj = $response_calendar[$email]->getBusy();

Но я становлюсь пустым с точки зрения свободной занятости.

1 ответ

Решение

Просто убедитесь, что календарь общедоступен, а затем попробуйте Google FreeBSY метод календаря. Это определенно будет работать.

Другие вопросы по тегам