commandline / cron curl Facebook RSS feed

时间:2009-11-05 21:13:55

标签: facebook rss curl

我正在尝试设置一个cron作业,定期将我的Facebook通知RSS提要加入,然后使用Prowl将我的iPhone的最新更改作为推送消息发布。

我已经使用每日引用的RSS提要管理了相同的任务,但是我的Facebook RSS提要始终会将我重定向到“不兼容的网络浏览器”。 http://www.facebook.com/common/browser.php

$ curl -v http://www.facebook.com/feeds/notifications.php?....
* About to connect() to www.facebook.com port 80 (#0)
*   Trying 69.63.181.11... connected
* Connected to www.facebook.com (69.63.181.11) port 80 (#0)
> GET /feeds/notifications.php?id=... HTTP/1.1
> User-Agent: curl/7.18.2 (x86_64-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.10
> Host: www.facebook.com
> Accept: */*
> 
< HTTP/1.1 302 Found
< Location: http://www.facebook.com/common/browser.php
< P3P: CP="DSP LAW"

我需要添加到我的curl参数来欺骗Facebook,我认为它只需要一个用户代理吗?

1 个答案:

答案 0 :(得分:6)

您需要通过-A选项传递适当的用户代理值以欺骗Facebook(例如“Mozilla 4”),并指示curl通过-L关注重定向选项:

$ curl -A 'Mozilla 4' -L "http://www.facebook.com/feeds/notifications.php?id=..."
<rss version="2.0"
      xmlns:media="http://search.yahoo.com/mrss/"
      xmlns:dc="http://purl.org/dc/elements/1.1/"
    >
...
</rss>