2014-11-22 1 views
1

API v3으로 업데이트 할 수 있도록 Google 캘린더 스크립트를 다시 작성하려고합니다.PHP를 통해 Google 캘린더 공개 캘린더로 공개 API 키의 도메인 수준 인증

사용자가 oAuth 2 루틴을 사용하여 한 번에 하나씩 자신의 캘린더를 인증하도록 강요하고 싶습니다. 그들은 캘린더를 공개로 설정할 수 있으며이를 수행 할 필요가 없습니다. 스크립트의 목적은 캘린더를 공개적으로 표시하는 것이므로 데이터가 이미 공개되어 있으므로 복잡한 인증이 필요하지 않습니다.

서버 IP 주소를 사용하는 API 키를 사용하여 성공적으로 수행 할 수 있습니다. 그러나 많은 사용자들이 IP가 자주 바뀌는 곳에서 호스팅을 공유합니다. 대신 도메인 이름을 기반으로 API 키를 사용하는 것이 좋습니다. 이것이 가능한가? 캘린더는 다음 모든 Google 계정으로 인증하고 일정을 읽을 수 있어야 대중 경우

<?php  
// set to Public API access with IP address at 
// https://console.developers.google.com/project/MYPROJECT/apiui/credential 
// works 
$url = 'https://www.googleapis.com/calendar/v3/calendars/494h1li4bohjc380cl8bntq94k%40group.calendar.google.com/events?key=MYAPIKEY_XXXXXXXXXXXXXXXXXXXXXXXXXX&maxResults=100&singleEvents=true&orderBy=startTime&timeMin=2014-11-18T14:00:00-00:00'; 

// set to Public API access with "Browser Key" and referer *.mydomainname.com/* 
// at https://console.developers.google.com/project/MYPROJECT/apiui/credential 
// does not work 
$url = 'https://www.googleapis.com/calendar/v3/calendars/494h1li4bohjc380cl8bntq94k%40group.calendar.google.com/events?key=MYAPIKEY_YYYYYYYYYYYYYYYYYYYYYYYYYY&maxResults=100&singleEvents=true&orderBy=startTime&timeMin=2014-11-18T14:00:00-00:00'; 

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $url); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_HEADER, false); 
$data = curl_exec($curl); 
curl_close($curl); 
print_r($data); 

답변

0

, 당신은 특정 사용자로 인증 할 필요가 없습니다. 표준 OAuth 2.0 인증을 사용하고 오프라인 액세스를 요청하면 액세스 토큰을 새로 고치는 데 사용할 수있는 새로 고침 토큰을 얻을 수 있습니다.