Опять-же, аналогично автопостингу в WordPress, я перерыл половину инета, чтоб найти нормальный php-скрипт постинга в ЖЖ. И опять-же, оказалось, что надо не искать, а самому разобраться с библиотекой XMLRPC, с помощью которой возможно постить как в WordPress, так и в LiveJournal.
Оказалось, это еще проще, чем писать оснастку для постинга в WP. Качаем XML-RPC библиотеку и смотрим код:
Оказалось, это еще проще, чем писать оснастку для постинга в WP. Качаем XML-RPC библиотеку и смотрим код:
01 | |
02 | //входные данные |
03 | $login = 'crawler'; |
04 | $passw = 'i-love-leksus'; |
05 | $subj = 'Тестовый пост в ЖЖ'; |
06 | $text = 'Если вы читаете этот текст у себя в ЖЖ - значит, тест прошел! ура!'; |
07 |
08 | // включаем библиотеку XML-RPC |
09 | include("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 | // анализируем результат |
58 | if(!$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 | ?> |
Комментариев нет:
Отправить комментарий