Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从公共谷歌日历获取JSON_Php_Json_Google Calendar Api - Fatal编程技术网

Php 从公共谷歌日历获取JSON

Php 从公共谷歌日历获取JSON,php,json,google-calendar-api,Php,Json,Google Calendar Api,如何获得带有公共谷歌日历事件的JSON?我有它的ID,但没有访问权限。我不想更改它的事件,也不想登录 我想从它那里得到一个JSON,与我的PHP/MySql数据库同步 已尝试https://www.googleapis.com/calendar/v3/calendars/{calendarId} 但出现登录错误: { "error": { "errors": [ { "domain": "global", "reason": "required", "mess

如何获得带有公共谷歌日历事件的
JSON
?我有它的
ID
,但没有访问权限。我不想更改它的事件,也不想登录

我想从它那里得到一个
JSON
,与我的
PHP
/
MySql
数据库同步

已尝试
https://www.googleapis.com/calendar/v3/calendars/{calendarId}

但出现登录错误:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Login Required",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Login Required"
 }
}

您的日历必须公开共享 如果您仅共享了忙/闲状态,则此选项有效:

http://www.google.com/calendar/feeds/{calendarId}@group.calendar.google.com/public/basic?orderby=starttime&sortorder=ascending&futureevents=true&alt=json
完整详细信息-只有当日历完全公开共享时,此选项才有效

http://www.google.com/calendar/feeds/{calendarId}@group.calendar.google.com/public/full?orderby=starttime&sortorder=ascending&futureevents=true&alt=json
或者只是忙/闲

http://www.google.com/calendar/feeds/{calendarId}@group.calendar.google.com/public/free-busy?orderby=starttime&sortorder=ascending&futureevents=true&alt=json

orderby、sortorder和futureevents参数是可选的,但以后可能会对您有所帮助:)

自2014年11月17日以来,Google日历API的v1和v2已被禁用

几乎所有操作都需要oauth身份验证。据我所知,这也需要用户交互

然而,对于公共日历,仍然可以使用单个链接来获取JSON数据(谷歌目前还没有对此进行记录,我不知道是他们的疏忽还是私有API可能会在明天消失)

  • 在Google开发者控制台中激活Google日历API
  • 在“凭据”下,创建一个新的公共API访问密钥(您可能希望将referers留空以进行测试)
  • JSON url现在如下所示

    {calendarid}/events?key={您的公共API密钥}

  • (大括号{}不应出现在实际url中)


    API文档描述了您可以包括的其他参数(除了您还可以包括参数&callback=,与大多数JSON请求一样,为javascript创建JSONP响应)。

    我觉得这个问题刚刚被问过…@admdraw,true。我问了一个类似的问题,很糟糕。所以我删除了那个,改进了我的文字并再次发布。啊,好的。很好,我有一秒钟感觉很疯狂!!(这并不是说我不疯狂…@Bugs,谢谢你的链接。我也检查过了。但没能成功。该链接示例需要
    OAuth 2.0
    身份验证。我不需要编辑日历,只需要从中获取数据。这不是我的问题,但你的回答对我很有帮助,谢谢@lakySince 2014年11月忙/闲链接不起作用。要获得开始和结束时间,您必须使用下面描述的Google Calendar API V3。完整详细的URL也不起作用,我假设需要将
    {calendarId}
    替换为电子邮件地址。我收到了禁止的403响应,这种方法仍然有效吗?我发现下面43票的答案实际上是返回了一个响应。我不知道如何创建公共API访问密钥。有什么变化了吗?看来这种用法每天都有限制。在我的服务器上,它返回403,并显示消息“超出未经验证使用的每日限制。继续使用需要注册。”但在我的浏览器中,它工作正常。我找不到任何关于每天允许的最大请求数的文档。如何获得与我共享日历的每个人的忙/闲查询。换句话说,只要每个人的日历在同一家公司内共享,是否可以通过一个calendarID(我的电子邮件地址)查看公司域中所有员工的忙/闲查询?