Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
从多个页面中提取Facebook事件的PHP脚本_Php_Arrays_Facebook_Cron_Icalendar - Fatal编程技术网

从多个页面中提取Facebook事件的PHP脚本

从多个页面中提取Facebook事件的PHP脚本,php,arrays,facebook,cron,icalendar,Php,Arrays,Facebook,Cron,Icalendar,大家好 目前,下面的脚本作为一个PHP页面pull.PHP在我的服务器上。它使用其ID(例如:12345678)从Facebook页面读取事件,并将其输出到文件(例如:1234568.ics) 我想在以下方面向社区寻求帮助: 1如何修改下面的代码,从许多Facebook页面读取一个数组,我将手动输入页面ID,例如:12345678、24681357、12348765,并输出到许多文件12345678.ics、24682357.ics、12348765.ics 2我正在寻找这些.ics文件在我的服

大家好

目前,下面的脚本作为一个PHP页面pull.PHP在我的服务器上。它使用其ID(例如:12345678)从Facebook页面读取事件,并将其输出到文件(例如:1234568.ics)

我想在以下方面向社区寻求帮助:

1如何修改下面的代码,从许多Facebook页面读取一个数组,我将手动输入页面ID,例如:12345678、24681357、12348765,并输出到许多文件12345678.ics、24682357.ics、12348765.ics

2我正在寻找这些.ics文件在我的服务器上创建和更新,位置与脚本运行的位置相同。我的想法是运行一个CRON作业,每晚运行这个脚本。然后,我的Facebook页面上有一个插件,可以根据.ics提要更新网站上的事件

代码:

有人知道怎么做吗


提前谢谢!如果你能帮我的话,你就走吧

您可以使用FQL查询一次获取多个页面的结果,如下所示:

select eid, creator, name, description, start_time, end_time, timezone, location from event where creator in ({PAGE1_ID}, {PAGE2_ID}, ...) and start_time > now() order by creator asc
您可以通过

GET /fql?q=...
像这样的端点替换页面ID!:

http://graph.facebook.com/fql?q=select%20eid%2C%20creator%2C%20name%2C%20description%2C%20start_time%2C%20end_time%2C%20timezone%2C%20location%20from%20event%20where%20creator%20in%20(1234,5678)%20and%20start_time%20%3E%20now()%20order%20by%20creator%20asc
但是,您必须稍微重新构造代码,因为结果如下所示:

{
  "data": [
    {
      "eid": 2289962603, 
      "creator": 1146614804, 
      "name": "eventname", 
      "description": "descr", 
      "start_time": "2014-05-30T21:00:00+0200", 
      "end_time": null, 
      "timezone": "Europe/Berlin", 
      "location": "thelocation"
    }, 
    ...
  ]
}

然后,您必须对creator字段的值的更改做出反应,该字段随后指示将创建一个新日历creator=page_id

是否有办法继续使用我在那里创建的脚本?我不知道在哪里应用选择eid、创建者等。。。。我在考虑对代码进行修改,将其放入排序循环中,同时在数组中使用值。。。并输出到许多不同的文件…我更新了我的答案,并介绍了如何使用FQL。顺便说一句,这也可以在Facebook文档中找到。重用/重构代码应该很容易,但我不会为您编写完整的代码。我想你需要自己做点努力。
{
  "data": [
    {
      "eid": 2289962603, 
      "creator": 1146614804, 
      "name": "eventname", 
      "description": "descr", 
      "start_time": "2014-05-30T21:00:00+0200", 
      "end_time": null, 
      "timezone": "Europe/Berlin", 
      "location": "thelocation"
    }, 
    ...
  ]
}