Соединяем блог и Livejournal через XML-RPC

XML remote procedure call на самом деле очень простая процедура, при помощи которой я теперь могу писать в своём блоге и копировать статью в livejournal.

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

Гораздо проще и удобнее все данные передать через xml-rpc. Для этого - устанавливаем готовую библиотеку и используем функцию..

 

function post2livejournal($subject,$event,$time=0) { require_once('lib/xmlrpc.inc'); $lj_userid='my_livejournal_username'; $lj_passwd='my_secret_password'; if (!$time)$time=time(); $year=date('Y',$time); $month=date('m',$time); $day=date('d',$time); $hour=date('H',$time); $minute=date('i',$time); $client=new xmlrpc_client("/interface/xmlrpc", "www.livejournal.com", 80); $params = new xmlrpcval( array( 'username' => new xmlrpcval($lj_userid,'string'), 'password' => new xmlrpcval($lj_passwd,'string'), 'ver' => new xmlrpcval('1','string'), 'lineendings' => new xmlrpcval('pc','string'), 'event' => new xmlrpcval($event,'string'), 'subject' => new xmlrpcval($subject,'string'), 'year' => new xmlrpcval($year,'int'), 'mon' => new xmlrpcval($month,'int'), 'day' => new xmlrpcval($day,'int'), 'hour' => new xmlrpcval($hour,'int'), 'min' => new xmlrpcval($minute,'int')),'struct' ); $msg = new xmlrpcmsg('LJ.XMLRPC.postevent'); $msg->addparam($params); $client->setDebug(0); $result = $client->send($msg); }
А что-бы не появилось ошибок типа Application failed during request deserialization проверьте кодировку в библиотеке - наверняка пытается utf отослать как iso (см xmlrpc.inc:222) 

$GLOBALS['xmlrpc_internalencoding']='UTF-8';//ISO-8859-1 

RSS

Комментарии

  • Андрей
    avatar
    Ну, допустим, пофиг на музыку и настроение. А теги?
  • Мне самому интересно кстати. Единственный вариант пока-что это полностью эмулировать пост из браузера - прошивать туда куки или даже авторизацию до этого и передавать как POST всё сообщение с данными.
  • WEB,NRJ
    Позавчера написал класс для LJ, позволяющий вставлять тэги, музыку и настроение вместе с постом.
  • coguar
    Не актуально, а жаль.
    Теги-то добавить не проблема, главное иметь чутку мозгов и быть наблюдательным.

    А вот то что вместо русских шрифтов я вижу нечто вроде ?? ?????????! - это конечно нонсенс.

    Выебать целые сутки чтоб потом получить очередной косяк... ППЦ.