我正在尝试使用带有日历ID的嵌入代码将Google日历嵌入到iframe中。我已经创建了一个服务帐户,并已授予该帐户访问相关日历的权限。
我可以使用google api客户端成功验证服务帐户,并且可以从日历中获取事件。但是,我无法弄清楚如何进行身份验证,因此可以显示iframe。
require_once __DIR__ . '/googleapi/vendor/autoload.php';
$client = new Google_Client();
$client->setApplicationName('Google Calendar API PHP');
$client->setScopes(Google_Service_Calendar::CALENDAR_READONLY);
$client->setAuthConfig('my-credentials.json');
$client->setAccessType('offline');
$service = new Google_Service_Calendar($client);
?>
<iframe src="https://calendar.google.com/calendar/embed?src=calendarId&ctz=Europe%2FCopenhagen" style="border: 0" width="800" height="600" frameborder="0" scrolling="no"></iframe>`
结果只是一条消息,告诉我不允许我显示有问题的日历。
答案 0 :(得分:0)
您似乎在做什么
<iframe src="https://calendar.google.com/calendar/embed?src=calendarId&ctz=Europe%2FCopenhagen" style="border: 0" width="800" height="600" frameborder="0" scrolling="no"></iframe>
就像您尝试在iframe中运行Google日历应用程序一样。那是行不通的,因为您将无法对其进行身份验证,而且我认为Google不会允许他们从iframe登录。
您应该做什么
您应该根据需要将应用程序设计为日历显示,然后将应用程序放置在iframe中。
<iframe src="https://yourcalendar.application.dk/awsomapp.php" style="border: 0" width="800" height="600" frameborder="0" scrolling="no"></iframe>
服务帐户只会授予您访问数据的权限,而不会授予您通过iframe来运行Google日历网站的权限。