создание нового поста в дневнике на livejournal на php
15.01.2008Оказалось, что создавать новые записи в дневнике на livejournal.com из php очень просто. Я вообще не читал документации по api livejournal, когда приступал к написанию этой функции единственное, что я знал, так это то, что как и все блогерские апи используется протокол xml-rpc. У меня есть готовый работающий пример - это livejournal cross poster - это плагин к wordpress, который я использую. Итак немного покопавшись в исходнике этого плагина, я написал свою функцию. Для работы этой функции требуется модуль wp-includes/class-IXR.php, который реализует протокол xml-rpc. Выяснил как происходить авторизация (отправка логина и пароля) в livejournal через xml-rpc: получаем значение md5 пароля складываем его со строкой отклика, полученной специально для этого и получившейся строке снова применяем md5, которая и отправляется. Подробности в исходнике: md5($challenge . md5($pass)); что называется просто и со вкусом. Далее в софт для блогов я привожу исходный текст моей функции, которая возвращает ID новой записи в дневнике на livejournal.com.
function PostToLivejournal($user, $pass, $Subj, $Content) {
$host = 'www.livejournal.com';
$client = new IXR_Client($host, '/interface/xmlrpc');
// получить отклик для пароля
if (!$client->query('LJ.XMLRPC.getchallenge')) {
echo 'livejournal error: '.$client->getErrorCode().' : '.$client->getErrorMessage();
return false;
}
$response = $client->getResponse();
$challenge = $response['challenge'];
$args = array();
$args['username'] = $user;
$args['auth_method'] = 'challenge';
$args['auth_challenge'] = $challenge;
$args['auth_response'] = md5($challenge . md5($pass));
// Makes LJ expect UTF-8 text instead of ISO-8859-1
$args['ver'] = "1";
$args['event'] = $Content;
$args['subject'] = $Subject;
$date = time();
// All of the relevent dates and times
$args['year'] = date('Y', $date);
$args['mon'] = date('n', $date);
$args['day'] = date('j', $date);
$args['hour'] = date('G', $date);
$args['min'] = date('i', $date);
//запрещаю комментарии
$args['props'] = array(
"opt_nocomments" => true,
"opt_preformatted" => true,
"opt_backdated" => !false,
'taglist' => 'message'
);
$args['security'] = "public";
// только теперь делаю вызов
if (!$client->query('LJ.XMLRPC.postevent', $args)) {
echo 'Something went wrong - '.$client->getErrorCode().' : '.$client->getErrorMessage();
return false;
}
$response = $client->getResponse();
return $response['itemid'];
}
Мой блог находят по следующим фразам
• T.sonic 610 прошивка
• прошивка для t.sonic 610
• бесплатный блог на WordPress
• программа для создания прошивки для плеера
• управление пингами
• удаление плагина
Комментарии (8) на запись “создание нового поста в дневнике на livejournal на php”
Пингбеки
- индексирование сайта yandex | Программы для блогов
- в помощь ищущему - часть 1 | Программы для блогов
- Социальная сеть из блогов на wordpress | Программы для блогов
- как устроен комментарий в wordpress | Программы для блогов
- ссылка на подписку на rss2email.ru одним кликом | Программы для блогов
- Предложение блог сервисам | Программы для блогов
- Маркетинг моего кота | Программы для блогов
- Обновление плагина отсроченного кросспостинга в blogger.com, subscribe.ru и livejournal.com | Программы для блогов
- пирование строки на php в кодировке utf-8 | Программы для блогов
- Поиск в блог и коммент клиенте | Программы для блогов
- плагин для wordpress создающий новые выпуски вашей рассылки на subscribe.ru и создает новую запись на зеркале blogspot.com | Программы для блогов
- Как назвать движок блога? | Программы для блогов
Оставить комментарий
Что то у меня не работает, покажи пример вызова.
Я делаю так:
require_once 'class-IXR.php';
echo PostToLivejournal('здесь все ок', 'пароль', 'Тест', 'Tест отправки сообщения!');
Возникает ошибка:
Something went wrong - Client : Application failed during request deserialization: not well-formed (invalid token) at line 11, column 44, byte 663 at /usr/lib/perl5/XML/Parser.pm line 187
Кстати у тя в примере кавычки неправильно стоят.
Я сделал версию, которая постит в ЖЖ через сокеты.
http://vovanmozg.com/2008/otpravka-soobshcheniya-v-livejournal-na-php