Чтобы быстро проверить как это всё работает, можно сделать так:
в файле cli_longrun_example.php (пример бота в проекте XMPPHP) пишем:
require_once 'drupal.xmlrpc.class.php';
$drpc = new drupalxmlrpc( $conf );
Дальше, в цикле обработки сообщений, после строк case 'chat':
case 'message':
Пишем что-то типа такого:
/// отвечаем только на сообщения НЕ нулевой длины
if ( mb_strlen(trim($pl['body']), 'utf-8') > 0) {
drpc->user_login('[LOGIN]','[PASS]');
/// сохраняем присланное сообщение
$nid = $drpc->node_save($pl['from'], $pl['body']);
/// отвечаем приславшему, сообщение о добавлении.
/// хорошая идея отправлять вместо сообщения ссылку на сайт
/// для этого используйте $nid: example.com/node/$nid
$conn->message( $pl['from'], 'MESSAGE POSTED' );
}
Причем, заметим, что логин происходит каждый раз, когда приходит сообщение.
Лично я не настраиваю адблок в каждом браузере, который использую. Делаю так: ставлю прокси-сервер bfilter (билд которого имеется под многие платформы) и в нужных браузерах настраиваю прокси.
Плюсы очевидны: новое правило в bfilter == изменение видно во всех браузерах.
Заменять не нужно, достаточно активировать модуль и установить авторизацию НЕ (!) по ключу
Чтобы узнать в чём проблема, попробуйте следующее:
1) сделайте простенький index.php примерно следующего содержания:
<?
require_once 'drupal.xmlrpc.class.php';
$conf = array(
'serv' => '[SERVER_ADDR]',
'port' => 80,
);
$drpc = new drupalxmlrpc( $conf );
$result = $drpc->connect;
print_r($result);
?>
2) поменяйте значение константы __DEBUG на единицу в файле drupal.xmlrpc.class.php.
3) откройте ваш index.php через www
4) В случае успеха, попробуйте залогиниться с помощью $drpc->user_login
5) И последним шагом проверяйте создание нод: $drpc->node_save
По выводимым ошибкам определить проблему труда не составит.
в файле cli_longrun_example.php (пример бота в проекте XMPPHP) пишем:
require_once 'drupal.xmlrpc.class.php';
$drpc = new drupalxmlrpc( $conf );
Дальше, в цикле обработки сообщений, после строк
case 'chat':
case 'message':
Пишем что-то типа такого:
/// отвечаем только на сообщения НЕ нулевой длины
if ( mb_strlen(trim($pl['body']), 'utf-8') > 0) {
drpc->user_login('[LOGIN]','[PASS]');
/// сохраняем присланное сообщение
$nid = $drpc->node_save($pl['from'], $pl['body']);
/// отвечаем приславшему, сообщение о добавлении.
/// хорошая идея отправлять вместо сообщения ссылку на сайт
/// для этого используйте $nid: example.com/node/$nid
$conn->message( $pl['from'], 'MESSAGE POSTED' );
}
Причем, заметим, что логин происходит каждый раз, когда приходит сообщение.
Плюсы очевидны: новое правило в bfilter == изменение видно во всех браузерах.
К.О.