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


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);
62else {
63  // сервер вернул ошибку
64  print "An error occurred: ";
65  print "Code: ".htmlspecialchars($r->faultCode());
66  print "Reason: '".htmlspecialchars($r->faultString())."'\n";
67}
68?>

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

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