我通过订阅5个地理位置在Instagram API上实现了实时功能。 这些地区几乎覆盖了布加勒斯特地区,所以我想我应该从Instagram的服务器上获得很多动作。
这是我在PHP中实现所有内容的方式(CodeIgniter):
问题在于,我通过手机拍摄其中一个区域进行了一些测试,有时我的照片显示出来,有时候却没有。实现不会抛出任何错误,但它的工作原理很奇怪。因此......我有几个未解答的问题:
问:我可以丢失请求吗?它在Instagram API docs中说我应该在不到2秒的时间内确认请求。以下是我的代码在回调方法(PHP CodeIgniter)中的样子:if ($_SERVER ['REQUEST_METHOD'] == 'POST') {
header("Content-Length: 0");
header("Connection: close");
flush();
// do stuff with file_get_contents('php://input')
// also, get new photos...
$data = json_decode (file_get_contents('php://input'));
if (is_array ($data))
foreach ($data as $geo) {
$this->db->query ("LOGGING SOMETHING HERE...");
// make some a cURL request to the geography endpoint
// get the photos, save them in the database
$this->live->updateGeo ($geo->object_id);
}
}
问:如果我缺少请求:
$this->live->updateGeo
(等待cURL调用结束)的时间增加,回调时间过长了吗?我已经分析了原始访问日志,并且不时会收到大量请求,然后是长时间的沉默。我认为这是因为Instagram API没有向我发布任何内容,或者因为我在不到2秒的时间内没有回应。否则......为什么这些请求一次全部发生(几秒钟内5-10个请求)?它不像5-10个人碰巧同时拍摄所有照片然后每个人都把手机放回口袋里:)