2009-11-05 36 views
0

我正在嘗試設置一個cron作業,它定期對我的Facebook通知RSS提要進行處理,然後使用Prowl將推送消息的最新更改發送給我的iPhone。commandline/cron curl Facebook RSS提要

我已經使用當天的RSS訂閱源管理了一個相同的任務,但是我的Facebook RSS源始終將302重定向到「不兼容的Web瀏覽器」。 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" 

什麼我需要添加到我的捲曲參數愚弄的Facebook,我認爲它需要更多的只是一個用戶代理?

回答

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> 
+0

工作一種享受TA。我沒有使用-L位置參數和-A用戶代理。這兩者共同完成了這個訣竅。謝謝。 – fwd4 2009-11-05 21:35:38

+0

剛編輯解釋'-L'選項 – notnoop 2009-11-05 21:41:04