我正在尝试重写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);
答案 0 :(得分:0)
如果日历是公开的,那么您应该能够作为任何Google帐户进行身份验证并阅读日历,您无需像该特定用户那样进行身份验证。使用标准OAuth 2.0身份验证并请求脱机访问,以便您获得可用于刷新访问令牌的刷新令牌。