Жизнь это - мгновения, промежутки. Ночь ушла, солнце скоро взойдет. Сделайте эти промежутки настолько прекрасными насколько это возможно - наполненными молчанием, наполненными благодарностью к существованию, которое дало вам шанс, благодарностью по отношению ко всем тем, кто вам помог. И ждите.


1 мая 2017 г.

PHP скрипт автоматического постинга в LiveJournal (ЖЖ)

Опять-же, аналогично автопостингу в WordPress, я перерыл половину инета, чтоб найти нормальный php-скрипт постинга в ЖЖ. И опять-же, оказалось, что надо не искать, а самому разобраться с библиотекой XMLRPC, с помощью которой возможно постить как в WordPress, так и в LiveJournal.

Оказалось, это еще проще, чем писать оснастку для постинга в WP. Качаем XML-RPC библиотеку и смотрим код:
01
02//входные данные
03$login = 'crawler';
04$passw = 'i-love-leksus';
05$subj = 'Тестовый пост в ЖЖ';
06$text = 'Если вы читаете этот текст у себя в ЖЖ - значит, тест прошел! ура!';
07 
08// включаем библиотеку XML-RPC
09include("lib/xmlrpc.inc");
10 
11// Задаем кодировку
12$xmlrpc_internalencoding = 'UTF-8';
13 
14// Задаем время поста (А не время постинга! Учтите, что пост будет опубликован сразу!)
15$date = time();
16$year = date("Y", $date);
17$mon = date("m", $date);
18$day = date("d", $date);
19$hour = date("G", $date);
20$min = date("i", $date);
21 
22// Перед формированием массива данных, нужно удостовериться, что данные subj и text находятся в правильной кодировке! Если кодировка не та, конвертируем в UTF-8
23 
24// заполняем массив с необходимыми переменными
25$post = array(
26  "username" => new xmlrpcval($login, "string"),
27  "password" => new xmlrpcval($passw, "string"),
28  "event" => new xmlrpcval($text, "string"),
29  "subject" => new xmlrpcval($subj, "string"),
30  "lineendings" => new xmlrpcval("unix", "string"),
31  "year" => new xmlrpcval($year, "int"),
32  "mon" => new xmlrpcval($mon, "int"),
33  "day" => new xmlrpcval($day, "int"),
34  "hour" => new xmlrpcval($hour, "int"),
35  "min" => new xmlrpcval($min, "int"),
36  "ver" => new xmlrpcval(2, "int")
37);
38 
39// на основе массива создаем структуру
40$post2 = array(
41  new xmlrpcval($post, "struct")
42);
43 
44// создаем XML сообщение для сервера
45$f = new xmlrpcmsg('LJ.XMLRPC.postevent', $post2);
46 
47// описываем сервер
48$c = new xmlrpc_client("/interface/xmlrpc", "www.livejournal.com", 80);
49$c->request_charset_encoding = "UTF-8";
50 
51// по желанию смотрим на XML-код того что отправится на сервер
52//echo nl2br(htmlentities($f->serialize()));
53 
54// отправляем XML сообщение на сервер
55$r = $c->send($f);
56         
57// анализируем результат
58if(!$r->faultCode()) {
59  // сообщение принято успешно и вернулся XML-результат
60  $v = php_xmlrpc_decode($r->value());
61  print_r($v);
62} else {
63  // сервер вернул ошибку
64  print "An error occurred: ";
65  print "Code: ".htmlspecialchars($r->faultCode());
66  print "Reason: '".htmlspecialchars($r->faultString())."'\n";
67}
68?>

Комментариев нет:

Отправить комментарий