2014-12-02 1 views
0

Google API PHP 클라이언트를 사용하여 캘린더에 일정을 추가하고 있습니다. 나는 이벤트가 나는 서비스 계정 자격 증명을 사용하고 내 달력Google API를 통해 이벤트가 추가되었습니다. PHP 클라이언트가 캘린더에 표시되지 않습니다.

에 표시되는이 요약 어떤 이유로 제대로 & & 모든 것을 표시하는 ID를 사용하여 해당 이벤트를 가져올 때 ID가 삽입 & 후 성공적으로 반환됩니다. 이 기능을 활성화 할 수있는 것이 있습니까?

여기 새로운 Google_Client API를 사용하여 내 코드

session_start(); 
    require dirname(__FILE__).'/google-api-php-client-master/autoload.php'; 

    $client_id = '<client ID>'; 
    $service_account_name = '<Service Account Name>'; 
    $key_file_location = dirname(__FILE__).'/API-Project-96c2a9122085.p12'; 


    if (!strlen($service_account_name) || !strlen($key_file_location)) { 
     echo missingServiceAccountDetailsWarning(); 
    } 


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

    $service = new Google_Service_Calendar($client); 


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

    $key = file_get_contents($key_file_location); 

    $cred = new Google_Auth_AssertionCredentials($service_account_name,array('https://www.googleapis.com/auth/calendar'),$key); 

    $client->setAssertionCredentials($cred); 

    if ($client->getAuth()->isAccessTokenExpired()) { 
     $client->getAuth()->refreshTokenWithAssertion($cred); 
    } 

    $_SESSION['service_token'] = $client->getAccessToken(); 

    $event = new Google_Service_Calendar_Event(); 
    $event->setSummary("WHY IS THIS NOT WOKING?"); 
    $start = new Google_Service_Calendar_EventDateTime(); 

    $start->setDateTime(date('Y-m-d\TH:i:s',strtotime('2014-12-24 10:00:00'))); 
    $start->setTimeZone('Australia/Melbourne'); 
    $event->setStart($start); 
    $end = new Google_Service_Calendar_EventDateTime(); 
    $end->setDateTime(date('Y-m-d\TH:i:s',strtotime('2014-12-26 12:00:00'))); 
    $end->setTimeZone('Australia/Melbourne'); 
    $event->setEnd($end); 
    $newEvent = $service->events->insert('primary', $event); 
    $newEvent->getId(); 
    $event = $service->events->get('primary', $newEvent->getId()); 
    echo '<pre>'; print_r($event); echo '</pre>'; 

답변

0

, 당신은 자신에게 일정을 공유 할 필요가있다.

$scope = new Google_Service_Calendar_AclRuleScope(); 
$scope->setType('user'); 
$scope->setValue('Your Email Goes Here'); 

$rule = new Google_Service_Calendar_AclRule(); 
$rule->setRole('owner'); 
$rule->setScope($scope); 

$result = $service->acl->insert('primary', $rule); 

문제가 계속되면 알려주세요.

+0

대단히 감사드립니다. – user3339988