Авторизация проходит на ура, id, name сессии я получаю:
<?php
$user='юзер';
$pass='пароль';
$uid='ид юзера';
$server="друпал сервер/xmlrpc.php";
$function_params=array();
$function_name="user.login";
$function_params[]=$user;
$function_params[]=$pass;
$request = xmlrpc_encode_request($function_name, $function_params);
$context = stream_context_create(array('http' => array(
'method' => "POST",
'header' => "Content-Type: text/xml; charset=utf-8",
'content' => $request
)));
$file = file_get_contents($server, false, $context);
$response = xmlrpc_decode($file);
if (
is_array($response) && xmlrpc_is_fault($response)) {
print_r("xmlrpc: $response[faultString] || ($response[faultCode])");
} else {
$return=$response;
}
$sessid=$return['sessid'];?>
Но если я пытаюсь создать ноду, то он неизменно ругается: "401 Unauthorized: Access denied for user anonymous".
<?php $node->title = 'title1';
$node->type = 'order';
$node->created = date('Y-m-d H:i:s',time());
$node->uid = $uid;
$node->name = $user;
$node->promote = 0;
$function_params=array();
$function_name="node.create";
$function_params[]=$node;
$request = xmlrpc_encode_request($function_name, $function_params);
$context = stream_context_create(array('http' => array(
'method' => "POST",
'header' => "Content-Type: text/xml; charset=utf-8",
'content' => $request
)));
$file = file_get_contents($server, false, $context);
$response = xmlrpc_decode($file);
if (
is_array($response) && xmlrpc_is_fault($response)) {
print_r("xmlrpc: $response[faultString] || ($response[faultCode])");
} else {
$return=$response;
}
?>
Сам xml формируется правильно - то есть первый аргумент массив содержащий переменные ноды - если я поставлю первым аргументом session_id, то он ругается на отсутствие $arg[0]->type. Надо как то передать id сессии? Я пробовал ее указывать и следующем аргументом после массива node, и в самом массиве, все равно система принимает меня за анонимуса.
Что я упустил? Или может это баг 7ки?