Опять-же, аналогично автопостингу в 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 | ?> |
Комментариев нет:
Отправить комментарий