Особо объяснять нечего. Пробуйте.
<?
$username = "testuser";
$password = "testpassword";
$title = "Заголовок сообщения";
$text = "Проверочное сообщение";
$year = date("Y");
$month = date("m");
$day = date("d");
$hour = date("H");
$min = date("i");
$query = '<?xml version="1.0"?>
<methodCall>
<methodName>LJ.XMLRPC.postevent</methodName>
<params>
<param>
<value>
<struct>
<member>
<name>username</name>
<value>
<string>'.$username.'</string>
</value>
</member>
<member>
<name>password</name>
<value>
<string>'.$password.'</string>
</value>
</member>
<member>
<name>event</name>
<value>
<string><![CDATA['.$text.']]></string>
</value>
</member>
<member>
<name>subject</name>
<value>
<string>'.$title.'</string>
</value>
</member>
<member>
<name>lineendings</name>
<value>
<string>pc</string>
</value>
</member>
<member>
<name>year</name>
<value>
<int>'.$year.'</int>
</value>
</member>
<member>
<name>mon</name>
<value>
<int>'.$month.'</int>
</value>
</member>
<member>
<name>day</name>
<value>
<int>'.$day.'</int>
</value>
</member>
<member>
<name>hour</name>
<value>
<int>'.$hour.'</int>
</value>
</member>
<member>
<name>min</name>
<value>
<int>'.$min.'</int>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>';
file_put_contents("temp.txt",$query);
$headers = "POST /interface/xmlrpc HTTP/1.0\r\n";
$headers .= "User Agent: XMLRPC Client 1.0\r\n";
$headers .= "Host: www.livejournal.com\r\n";
$headers .= "Connection: Close\r\n";
$headers .= "Content-Type: text/xml\r\n";
$headers .= "Content-Length:".filesize("temp.txt")."\r\n";
$headers .= "\r\n";
$fp = fsockopen("www.livejournal.com", 80, $errno, $errstr, 5);
if($fp)
{
fwrite($fp, $headers.$query);
$s = '';
while (!feof($fp)) {
echo fgets($fp, 128);
flush();
}
fclose($fp);
}
?>
Постовой
Jaguar X-TYPE
Автомобили Одесса
Особенности временной работы
Реклама как способ убеждения
CorelDRAW Graphics Suite 12 Русская версия
Adobe Illustrator CS3
sj, 01:59, 2 декабря 2008
как сделать чтобы отправлялось в много жж блогов одним скриптом?
vovan, 07:09, 2 декабря 2008
:)
А это нужно немножко скрипт доработать. Если php не знаешь, пиши на vovanmozg@gmail.com обсудим.
capner, 06:59, 2 декабря 2008
Предлагаю модули распознавания капчи. В наличии много движков, в частности google, yahoo, mail.ru, myspace, vkontakte.ru, recaptcha.com, icq, DLE. Возможно написание распознавалки под ваш проект. Также пишем софт на си++ для win, nix
icq: 5-786-656
mail: captcher@gmail.com
Петя, 05:31, 19 декабря 2008
Подскажите пожалуйста, почему у меня такая ошибка появляется? заранее спасибо за помощь
<?xml version="1.0" encoding="UTF-8"?>faultStringApplication failed during request deserialization:
not well-formed (invalid token) at line 23, column 31, byte 570 at /usr/lib/perl5/XML/Parser.pm line 187
faultCodeClientHTTP/1.0 200 OK
Date: Fri, 19 Dec 2008 05:28:27 GMT
Server: Apache
Set-Cookie: ljuniq=i6B9Ns4od5g5zeT:1229664507:pgstats0:m0; expires=Tuesday, 17-Feb-2009 05:28:27 GMT; domain=.livejournal.com; path=/
Content-Length: 425
Content-Type: text/xml
SOAPServer: SOAP::Lite/Perl/0.60
Connection: close
vovan, 04:28, 20 декабря 2008
Это означает, что сервер считает, что в отправленных данных присутствуют символы, которых нет в кодировке UTF-8. У меня такая проблема появлялась, когда размер данных в заголовке (Content-Length) не соотвествовал реальному размеру отправляемых данных.
Попробуй отправить сообщение на английском языке.
Артем, 02:02, 17 февраля 2009
наше закрытое сообщество (на livejournal.com) читают посторонние, как это делается и как с этим можно бороться?
или лучше установить на своем сервере какойто скрипт? возможно чтото посоветуете из скриптов блогов?
заранее большое спасибо!
пс: извиняюсь за коммент не по теме)
vovan, 02:25, 18 февраля 2009
не компетентен в этом вопросе.
Иван, 03:38, 16 марта 2009
Спасибо огромное, съэкономил кучу времени!
А то все каких-то мутантов пишут. KISS рулит!
Иван, 03:49, 16 марта 2009
Я тут вот на радостях забыл совсем спросить :)
1) Как сделать чтобы можно было при изменениях на сайте (ну очепятка там какая) не добавлять а изменить этот уже добавленный пост в ЖЖ. Трекить локольно ийди назначенный ЖЖм посту, например, и слать его где-нибудь в качестве агрумента... Я просто шибко не хочу ковырять апи жжешный...
2) Ну и идеально было бы, конечно, в комьюнити разные постить...
Еще раз спасибо, славный скриптик, в моем вкусе :)
vovan, 23:50, 16 марта 2009
редактирование не приходилось делать. Копай в сторону LJ.XMLRPC.editevent
Вообще я использовал вот эту доку:
http://www.sixapart.com/developers/product_documentation/livejournal/
greensunj, 09:01, 17 апреля 2009
скажи плиз, а нельзя ли както обойтись без создания файла?
vovan, 17:02, 18 апреля 2009
Думаю, без создания файла обойтись можно. Но нужно разобраться с проблемой.
Способ с использованием файла сработал, поэтому я прекратил эксперименты по улучшению кода и оставил скрипт в том виде, который можно наблюдать в этом посте.
Пася, 15:57, 3 мая 2009
Привет.
Кроме логина и пароля не нужно ничео менять?
Все сделал, а он не работает. Ничего не постит :(
Купите мотик http://usedauto.com.ua/Yamaha_fzr250r_14856.html :)
vovan, 01:36, 4 мая 2009
Напиши больше информации об ошибке.
dimka, 18:48, 6 июля 2009
Все отлично отправляет. А есть ли похожие решения для других блогов?
Анонимный, 16:42, 30 июля 2009
нет, не работает. ничего не постит. ошибок не выдает (
defs, 21:02, 13 августа 2009
Блин Вовка, ты гений! Я уже тыкаю во все платные ссылки у тебя тут, надеюсь это внесёт мою маленькую лепту в возмещение твоих стараний )) Проверил - всё работает, без доработок, отличный простой скрипт. Именно то что искал, спасибо! Ну а у кого не работает - видимо экземпляр бракованный попался, требуйте замены! )))) А если серьёзно - 1) сокеты откройте, 2) файл скрипта в utf без bom...
vovan, 23:58, 13 августа 2009
Спасибо на добром слове :)
Andrey K., 12:55, 1 сентября 2009
Вов, спасибо огромное за решение.
А по поводу создания файла - можно использовать strlen($query)
vovan, 23:28, 2 сентября 2009
с strlen не работало. Это связано с мультибайтовыми кодировками. Возможно стоило попробовать mb_strlen
Andrey K., 19:58, 4 сентября 2009
У меня сейчас твой скрипт один в один, но со strlen. И все прекрасно работает)) На php5
Виталий, 10:39, 13 ноября 2009
$params = array("username" => $login, "password" => $password,
"event" => $body, "subject" => $title, "lineendings" => "unix",
"year" => date("Y"), "mon" => date("n"), "day" => date("j"), "hour" => date("G"), "min" => date("i"));
$request = xmlrpc_encode_request('LJ.XMLRPC.postevent', $params);
$curl = curl_init("http://www.livejournal.com/interface/xmlrpc");
curl_setopt($curl, CURLOPT_POSTFIELDS, $request);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: text/xml"));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_exec($curl);
curl_close($curl);
vovan, 05:44, 14 ноября 2009
Спасибо за альтернативный вариант. С первого раза запустилось (правда возникла небольшая проблема с наличиемо модулей CURL и XMLRPC, и с кодировкой, но это всё легко исправилось). Спасибо.
Кубик, 00:25, 4 июля 2010
Странно, у меня с кодировкой нечего не получилось, что только с iconv(); всё равно крякозяблы...(
Serg, 05:21, 20 ноября 2009
Доброго времени суток. Подскажите, пожалуйста, проблема такая:
Поменял только логин и пароль.
Выдает следующую ошибку
Warning: fsockopen(): unable to connect to www.livejournal.com:5222
Serg, 05:23, 20 ноября 2009
Сорри, порт тоже не менял
Warning: fsockopen(): unable to connect to www.livejournal.com:80
Serg, 05:29, 20 ноября 2009
Также еще $errno и $errstr в следующей строке
$fp = fsockopen("www.livejournal.com", 80, $errno, $errstr, 5);
принимают следующие значения
$errno=1 и $errstr=Operation not permitted
Помогите, пожалуйста
vovan, 14:27, 22 ноября 2009
Хм, странно. Можно попробвать запустить с другого компа. Или попробовать вариант, который прислал Виталий в комментарии чуть выше.
Serg, 16:13, 23 ноября 2009
Воспользовался вашим советом, отправил с другого компа, все заработала. Спасибо)
Serg, 19:31, 30 ноября 2009
Добрый вечер. Не могли бы вы подсказать, пожалуйста, как сделать следующее: Есть массив типа (заголовок, текст), я пытался отправить все в цикле, а выходит так, что первый пост из цикла отправляется нормально, а остальные нет. Сервер возвращает такой ответ:
HTTP/1.0 200 OK Date: Mon, 30 Nov 2009 19:24:29 GMT Server: Apache Set-Cookie: ljuniq=cBUsOBPOb0LMTNE:1259609069:pgstats0:m0; expires=Friday, 29-Jan-2010 19:24:29 GMT; domain=.livejournal.com; path=/ Content-Length: 410 Content-Type: text/xml SOAPServer: SOAP::Lite/Perl/0.60 Connection: close faultStringApplication failed during request deserialization: no element found at line 66, column 2, byte 1582 at /usr/lib/perl5/XML/Parser.pm line 187 faultCodeClient .
Если возможно, подскажите, пожалуйста.
vovan, 11:26, 1 декабря 2009
Добрый вечер. Есть такая проблема, но я не стал с ней разбираться. Скрипт за один раз почему-то отправляет один пост.
Анонимный, 15:45, 25 апреля 2010
У меня такое сообщение выдавалось когда на папке со скриптом не хватало прав на запись. Поставил 777, перестало.
Cykooz, 10:15, 4 декабря 2009
Скажите, а кто нибудь потом побывал редактировать добавленный пост через веб-интерфейс ЖЖ?
У меня выдаёт ошибку на странице редактирования:
-----
Client error: Invalid text encoding: Cannot display this post. Please see http://www.livejournal.com/support/encodings.bml for more information.
-----
При этом пост нормально отображается на других страницах и ни каких проблем с кодировками нету.
Я правда скрипт делал не на PHP, а на Python и использовал для этого стандартный модуль xmlrpclib, но мне кажется что дело не в этом.
Dim Wap, 15:09, 5 марта 2010
Да, было такое. Это у вас в настройке ЖЖ не выставлена кодировка по умолчанию. После этого пост станет виден и его можно удалять/редактировать. Кодировки просто не соответствуют.
Cykooz, 07:45, 8 декабря 2009
Всё, спасибо, разобрался сам. Я не указал в запросе параметр 'ver'. Задал его значение в 1 и всё стало нормально.
http://livejournal.com/doc/server/ljp.csp.versions.html
Сергей Смирно, 14:57, 8 февраля 2010
Что заменить в коде, что бы постинг шел не в журнал, а в сообщество?
vovan, 12:37, 18 февраля 2010
Готового решения не дам, но могу посоветовать поковырять API LJ.
Org, 06:44, 10 февраля 2010
В Мазилле Ф. есть отличный плагин Depest ... Отлично справляется с отправкой в LJ
Балакирев Никита, 15:50, 26 апреля 2010
Ну по этой теме могу сказать одно. Есть прекрасный скрипт .charmrc под Линукс, вот настроив ему кронтаб и можно постить в жж автоматом.
Можно и без кронтаб.
Lady , 13:23, 18 мая 2010
спасибо!нашла решение своей пробелмы!
советы
Анонимный, 10:29, 17 августа 2010
А насчет комментариев к определенному посту, как сделать не знаете ?
Читал тут http://www.livejournal.com/doc/server/ljp.csp.xml-rpc.protocol.html - там вроде нет такого метода.
Отправить комментарий