2009-11-05 3 views
0

Я пытаюсь настроить работу cron, которая регулярно отслеживает мою ленту новостей Facebook, а затем запускает последнее изменение на моем iPhone в качестве push-сообщения с помощью Prowl.commandline/cron curl Facebook RSS-канал

У меня уже была идентичная задача с котировальным RSS-каналом, однако мой RSS-канал всегда 302 перенаправляет меня на «несовместимый веб-браузер». 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

Вам необходимо пройти соответствующее значение агента пользователя, чтобы обмануть Facebook (например, «Mozilla 4») с помощью опции -A, а также проинструктировать 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

Работал в лечении та. Я не использовал параметр -L location с -A user-agent. 2 вместе сделали трюк. Спасибо. – fwd4

+0

Только что отредактирован для объяснения опции '-L' – notnoop

Смежные вопросы