2014-11-22 46 views
1

我想重寫一個谷歌日曆腳本更新到API v3。公共API密鑰與谷歌日曆的域級別認證通過PHP的公共日曆

我想不要強迫我的用戶使用oAuth 2例程每次驗證一個日曆。他們應該能夠將日曆設置爲公開,而不必執行此操作。該腳本的目標是公開顯示日曆,因此它不應該需要複雜的認證,因爲數據已經公開了。

我可以使用使用服務器IP地址的API密鑰成功執行此操作。但是許多用戶共享主機,他們的IP經常變化。我寧願擁有基於域名的API密鑰。這可能嗎?

<?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身份驗證並請求脫機訪問,以便您可以獲取可用於刷新訪問令牌的刷新令牌。