tl1

PHP-код для чтения закрытых постов в ЖЖ через RSS

Apr 18, 2015 22:15

Ищу способ снова читать ЖЖ и массу других блогов в одном централизованном приложении. Естественно, это возможно только через RSS. Как оказалось, у ЖЖ есть возможность читать защищённые записи через RSS, но не всё так просто, т.к. отдавалка RSS требует определённых уговоров и, например, Tiny Tiny RSS не справляется с получением защищённых фидов. В интернетах также нет работающего в настоящий момент примера кода, поэтому я решил запостить результат своих изысканий. Код тривиальный, фишка только в наборе параметров cURL.
$digest_username, $digest_password - глобальные переменные с вашим логином и паролем в ЖЖ.
URL защищённого фида: http://www.livejournal.com/users/tl1/data/rss/?auth=digest
(Замените tl1 на произвольный %USERNAME% ЖЖ.)
Вы получите RSS с записями пользователя, включая приватные, которые он открыл вам.

function get($url) {
global $digest_username, $digest_password;
if (!$digest_username)
return file_get_contents($url);
$auth = "$digest_username:$digest_password";
$ch = curl_init();
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_UNRESTRICTED_AUTH, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
curl_close($ch);
return $res;
}

программирование, ЖЖ

Previous post Next post
Up