通过PHP使用google日历公共日历对公共API密钥进行域级身份验证

通过PHP使用google日历公共日历对公共API密钥进行域级身份验证,php,calendar,google-api,google-calendar-api,Php,Calendar,Google Api,Google Calendar Api,我正在尝试重写一个google日历脚本,以更新到API v3 我不想强迫我的用户使用oAuth 2例程一次验证一个日历。他们应该能够将日历设置为公共日历,而不必这样做。脚本的目标是公开显示日历,因此不需要复杂的身份验证,因为数据已经公开了 我可以使用使用服务器IP地址的API密钥成功地做到这一点。但是许多用户共享了他们的IP频繁变化的主机。我更喜欢使用基于域名的API密钥。这可能吗 <?php // set to Public API access with IP address

我正在尝试重写一个google日历脚本,以更新到API v3

我不想强迫我的用户使用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);

如果日历是公开的,那么您应该能够作为任何Google帐户进行身份验证并读取日历,而不需要作为特定用户进行身份验证。使用标准OAuth 2.0身份验证并请求脱机访问,以便获得一个刷新令牌,该令牌可用于刷新访问令牌