Google Calendar API PHP创建事件时权限不足问题求助
解决Google Calendar API创建事件时的Insufficient Permission错误
你遇到的权限问题,核心原因是已保存的授权凭证权限不足——虽然代码里指定了读写权限的Scope,但如果第一次授权时用的是只读权限(或者凭证文件没更新到新的Scope),就会出现能读不能写的情况。下面是具体的解决步骤:
1. 确认Scope设置正确
你的代码里已经使用了正确的读写权限Scope,这部分没问题:
define('SCOPES', implode(' ', array( Google_Service_Calendar::CALENDAR) ));
Google_Service_Calendar::CALENDAR对应的是完整的日历读写权限,完全满足创建事件的需求。
2. 删除旧的授权凭证文件
之前授权生成的凭证文件已经保存了旧的权限范围,必须删除后重新授权:
- 找到凭证路径:
~/.credentials/calendar-php-quickstart.json(Windows系统对应你的用户目录下的.credentials文件夹) - 删除这个
calendar-php-quickstart.json文件
3. 重新运行代码完成授权
再次执行PHP代码,会弹出一个授权链接,按以下步骤操作:
- 打开链接后选择你要操作的谷歌账号
- 在授权页面中,务必确认授予查看和编辑你的日历的权限(不要选只读)
- 输入验证码完成授权,新的凭证会自动保存,此时就拥有创建事件的权限了
额外提醒:修正事件日期的逻辑错误
你的代码里还有一个容易踩坑的问题:事件的start日期是2018年,end日期却是2015年,这会导致API返回日期无效的错误,建议修正为合理的时间范围,比如:
'start' => array( 'dateTime' => '2024-01-28T09:00:00-07:00', 'timeZone' => 'America/Los_Angeles', ), 'end' => array( 'dateTime' => '2024-01-28T17:00:00-07:00', 'timeZone' => 'America/Los_Angeles', ),
完成以上步骤后,重新运行代码应该就能成功创建事件了。
内容的提问来源于stack exchange,提问作者user2399035
相关产品推荐
相关产品推荐

