2014-01-22 1 views
0

사용자를 인증하고 외부 웹 사이트에 포함 된 Google 캘린더에 액세스 할 수있는 가장 좋은 방법을 찾고 있습니다. 캘린더에는 비공개 일정이 포함되어 있기 때문에 캘린더를 세계와 공유 할 수 없습니다. 내 솔루션은 Google API를 사용하는 데 동일한 인증을 사용하는 것입니다 (아래 코드 참조). 사용자가 Google 계정에 로그인 (인증의 일부) 한 다음 사용 권한을 수락하면 기본적으로 Google에 로그인되어 Google 캘린더에서 비공개 이벤트를 볼 수 있습니다.캘린더를 공개하지 않고 외부 웹 사이트에 Google 캘린더를 포함시킬 때 사용자를 인증하는 방법

세계에 캘린더를 공유하지 않고도 내재 된 Google 캘린더에 대한 액세스 권한을 사용자에게 부여하는 더 좋은 방법이 있습니까?

내 코드 :

<?php 
require_once 'src/Google_Client.php'; 
require_once 'src/contrib/Google_CalendarService.php'; 
session_start(); 

$client = new Google_Client(); 
$client->setApplicationName("Calendar Project"); 

$client->setClientId('XXXX'); 
$client->setClientSecret('XXX'); 
$client->setRedirectUri('XXX'); 
$client->setDeveloperKey('XXX'); 
$cal = new Google_CalendarService($client); 
if (isset($_GET['logout'])) 
{ 
    unset($_SESSION['token']); 
} 

if (isset($_GET['code'])) 
{ 
    $client->authenticate($_GET['code']); 
    $_SESSION['token'] = $client->getAccessToken(); 
    header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']); 
} 

if (isset($_SESSION['token'])) 
{ 
    $client->setAccessToken($_SESSION['token']); 
} 

if ($client->getAccessToken()) { 
    ?><iframe src="https://www.google.com/calendar/embed?src=emailhere%40gmail.com&ctz=America/Los_Angeles" style="border: 0" width="800" height="600" frameborder="0" scrolling="no"></iframe><?php 
$_SESSION['token'] = $client->getAccessToken(); 
} else { 
    $authUrl = $client->createAuthUrl(); 
    print "Access the calendar <a class='login' href='$authUrl'>here</a>"; 
} 
?> 

감사합니다!

답변

0

예 ... 로그인하고 일정을 볼 수 있도록 몇 가지 Gmail 계정과 공유 액세스 권한을 설정해야합니다.이 옵션은 캘린더 설정에서 사용할 수 있습니다.