2017-05-16 1 views
2

Google 캘린더 API PHP로 일정을 삽입하려고합니다. 나는 아무런 오류가 없다, 나는 $event->hmtlLink을 가지고있다. 그러나 내가 계속 할 때, 구글은 나에게 "이 사건은 존재하지 않는다"라고 말한다. 여기Google 캘린더 일정이 삽입되었지만 존재하지 않습니다.

putenv("GOOGLE_APPLICATION_CREDENTIALS=" . __DIR__ . "/private/credentials.json"); 

$client = new Google_Client(); 
$client->useApplicationDefaultCredentials(); 
$client->setScopes(SCOPES); 

$service = new Google_Service_Calendar($client); 

$calendarId = "primary"; 

내가 이벤트 만드는 데 사용하는 기능입니다 : 여기

는 클라이언트와 서비스를 얻을하려면 코드입니다

function createEvent($eventId, $name, $equipe, $location, $description, $startTimeDate, $endTimeDate, $timeZone){ 
    $startTimeDate = new DateTime($startTimeDate); 
    $startTimeDate = date_format($startTimeDate, DATE_ISO8601); 
    $endTimeDate = new DateTime($endTimeDate); 
    $endTimeDate = date_format($endTimeDate, DATE_ISO8601); 
    $event = new Google_Service_Calendar_Event(array(
     'id' => $eventId, 
     'summary' => join('',array("[",$equipe,"] ",$name)), 
     'location' => $location, 
     'description' => $description, 
     'start' => array(
     'dateTime' => $startTimeDate, 
     'timeZone' => $timeZone, 
    ), 
     'end' => array(
     'dateTime' => $endTimeDate, 
     'timeZone' => $timeZone, 
    ), 
    )); 
    global $service, $calendarId; 
    $event = $service->events->insert($calendarId, $event); 
    printf($event->htmlLink); 
    printf($event->status); 
    printf($event->created); 
} 

가 제 1 회 printf의 나에게 좋은 링크를 보내,하지만에 오프닝 :

제 2 송신을 존재하지 않는 이벤트는

제 3 일을 보내 "확인" e 좋은 dateTime

동일한 ID로 이벤트를 삽입하려고하면이 ID가 이미 존재한다는 오류가 발생합니다. 하지만 캘린더에는 아무 것도 없습니다 ...

도와주세요! 감사합니다.

+0

여기서 간단히 추측 할 수 있지만 (자격증 명 파일에서) HTML 링크를 볼 수있는 동일한 계정을 사용하고 있는지 확인하십시오. 다른 Google 계정이있는 경우오고 있습니다. 기본으로 설정되어 있으며 추가 된 이벤트를 볼 수있는 권한이 없습니다. –

+0

다른 계정으로는 아무 것도 개발하지 못했고, 나의 신용 정보에는'client_email'이 좋은 것입니다. 그래서 좋은 계정이라고 생각합니다. –

+0

이벤트를 추가하는 자격 증명이 전자 메일 주소에 대한 것이면 해당 자격 증명을 사용하여 수동으로 캘린더에 로그인하고 직접 링크를 사용하지 않고 해당 캘린더 및 이벤트를 볼 수 있는지 확인하십시오. 또한 API에서 직접 링크를 얻는 방법에 대한 답변을 확인하십시오. htmlLink가 동일한 값을 반환하는지 확인하는 데 사용할 수 있습니다. http://stackoverflow.com/a/23469684/463935 –

답변

0

전체 이벤트 가져 오기 요청을 여기에 게시하지 않았지만 요청에 일부 이벤트를 필터링하는 일부 필터가있을 수 있습니다. 요청을 보내면 모든 이벤트가 포함되지는 않습니다.

예를 들어 그 날짜 시간 이전에 모든 이벤트를 필터링 TimeMin라는 DateTime 매개 변수가, 그리고 예를 들어, 당신은 당신이 지금부터 1 년 이전에 예약 된 이벤트에 대한 액세스 권한을 얻을 수 없습니다, DateTime.Now.AddYears(1)로 설정하는 경우 .

관련 문제