使用PHP cURL和cron作业获取Facebook评论和分享计数

时间:2012-02-24 22:33:27

标签: php facebook api curl cron

我想知道你们在查询Facebook API时是否可以帮助阐明最佳做法。

我喜欢每天运行一个cron作业,根据帖子的Facebook评论数量,使用“comment_count”更新我的所有帖子。

一般来说,我会收集所有帖子的所有固定链接,并对这样的内容发出cURL请求: https://graph.facebook.com/?ids=http://site.com/post/1,http://site.com/post/2,http://site.com/post/3

然而,有两个问题 1.网址只能这么长。因此,如果我尝试将所有帖子放在一个URL中并将其发送出去,它就会被切断并且不起作用。 2.服务器超时。

有没有人有一个很好的方法来查询这样的API并避免这些问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

这可能是偏离主题的,我不知道你要写入哪个接收器,但这里有一些未经测试的node.js代码:

setInterval(updateComments, 3000);

function updateComments()
{
    var ids = ['http://site.com/post1','http://site.com/post2'];

    ids.forEach(function(id){
    var options = { host: 'graph.facebook.com', path: '?ids=' + id, method: 'GET' };
    var req = http.request(options, function(res) {
      var data = "";
      res.on('data',function(chunk){
        data += chunk;
      });
      res.on('end', function(){
        updatePost(id, data);
      });
    });
    req.end();
}

你仍然需要批量处理它,但它会异步运行,可能会最大化你的连接......

如果没有更多,这是对node.js的赞美合唱

以下是如何设置它:

sudo apt-get update
sudo apt-get install git-core curl build-essential openssl libssl-dev
git clone https://github.com/joyent/node.git && cd node
git tag
git checkout [tag of choice/latest:]v0.6.7
./configure
make
sudo make install
node -v
> v0.6.7

echo 'console.log("hello")' >> hello.js && node hello.js
> hello

install NPM (Node Package Manager):
curl http://npmjs.org/install.sh | sudo sh
npm -v
> 1.1.0-beta-10