services

Services views - как вывести поля entity referrence field ?

Аватар пользователя albabosh

Здравствуйте,
Есть в материале entity reference поле (в нем несколько материалов). Как вывести это все (т.е. поля основного материала и его referrences с полями в services views, т.е. json. Вывожу referrence Services raw форматтером - все работает, но нужны еще и поля... Всем спасибо за любую помощь !

0 Спасибо

Изменение аватара пользователя с помощью модуля Services и REST

Аватар пользователя roman-yrv

Добрый день.

Подскажите, пожалуйста, каким образом передать параметром в REST-запрос "изменить данные пользователя" (который вызывается как PUT site.com/endpoint/user/{UID}), чтобы у пользователя поменялась аватарка ?

Файл с аватаркой я успешно закачал с помощью другого rest-запроса и мне известен fid этого файла.

Пытаюсь передавать вот таким вот образом (см. код) - fid у поля picture не меняется.

    $user_update_data = array(
        'picture' => $fid
    );
   
    $user_update_context = array(
        'http' => array(
            'header' => "Content-type: application/json".PHP_EOL.
                        "Cookie: ".$auth_data['session_name']."=".$auth_data['session_id'].PHP_EOL.
                        "X-CSRF-Token: ".$auth_data['token'].PHP_EOL,
0 Спасибо

Ошибка 403 при аутентификации при запросе к REST-серверу

Аватар пользователя roman-yrv

Добрый день.

Сейчас отлаживаю php-скрипт, который бы обращался к REST-серверу на drupal-сайте.

Вот функция, которая логинится на сервер и возвращает пару "имя сессии - ID сессии"

    function test_login($username, $password)
    {
        if (isset($_COOKIE['drupal_session_name']) && isset($_COOKIE['drupal_session_id']))
        {
            return $_COOKIE['drupal_session_name'].' = '.$_COOKIE['drupal_session_id'];
        }
        else
        {
           
            $u_data = array(
                'username' => $username,
                'password' => $password,
            );
           
           
            $user_login_data = array(
                'http' => array(
                    'header' => "Content-Type: application/json",
0 Спасибо

Вопросы по работе с модулем Services

Аватар пользователя roman-yrv

Добрый день.

Сейчас разбираюсь с модулем  Services и хочу задать несколько вопросов.

1. Каким образом узнать, какие параметры передавать методам сервиса? Например, я хочу залогиниться с помощью метода "user.login" или удалить ноду с помощью "node.delete". А с какими параметрами эти методы вызывать - могу только догадываться.

2. В Firefox с помощью расширения XML-RPC Client пытаюсь произвести операции с методами. И часто возникает ошибка "CSRF validation failed". А каком случае она будет возникать и как эту проблему решать ?

3. Зарегистировал на сайте сервис, работающий через REST. Но при попытке обратиться с помощью приложения postman возвращается Access Forbidden.

0 Спасибо

обновление полей типа Ссылка на термин через модуль Services 3

Аватар пользователя navmedic

Добрый день
Пытаюсь использовать модуль Services 3.0 для размещения данных на друпале.
Столкнулся с тем, что обновить материал через интерфейс Services 3.0 (сервис REST) не получается. Выполняю проверочное обновление ресурса node: сначала делаю GET в xml формате, потом PUT того же самого xml по тому же адресу.
Выдаются ошибки типа
Сделан недопустимый выбор. Пожалуйста, обратитесь к администратору сайта.
Что означает, что поля типа Ссылка на термин содержат не ту информацию, которую ожидает сервис.
В xml к упомянутому полю относится следующее
1938

Как это понять, модуль не работает со ссылками на термины?

0 Спасибо

Нужно обновить

Аватар пользователя Snake-YAVA

С помощью Services успешно получается логиниться и получать инфу с сайта в своём приложении, но не могу разобраться как изменить через REST одно из полей на странице пользователя. Можете помочь?
На адрес http://mysite.ru/api/v1/user/{uuid} посылаю PUT запрос с JSON'ом. В ответ получаю ошибку 500 (From callback, The remote server returned an error: (500) Service unavailable (with message)). Права на редактирование поля выставлены.

string token = responseData;
//var tmp = "{\"device_hostname\":\"testtesttest\"}";
var tmp = "{\"field_effects_in_device\":{\"und\":[{\"target_id\":\"9\"}]}}";                   
SendRequest("http://mysite.ru/api/v1/user/947fee17-5023-4fc9-915c-6487b8962523", HttpMethod.PUT, tmp, null, null, token);              
0 Спасибо

Скачивание приватных файлов из своего приложения

Аватар пользователя Snake-YAVA

Задача такая - сделать так чтобы некоторые файлы можно было скачать только авторизованными пользователями из своего приложения. Сделал в настройках drupal чтобы файлы хранились в приватной директории. Поставил модуль Field Permissions, всё замечательно, файлы качаются только пользователями с определённой ролью, но только из браузера. На сайте установлен модуль Services, с помощью него я в своём приложении могу авторизовываться и получать определённые данные по запросам, например, получать список url для скачивания.

0 Спасибо

Регистрация через Services без подтверждения почты

Аватар пользователя hailovigor

Есть модуль services 7.x-3.7 и приложение (android).
Пытаюсь зарегистрироваться через него (сервер REST), получается, аккаунт создается. НО требует подтверждение мыла (приходит письмо на почту) и установку пароля. Если в настройках учетной записи отключить " Требуется проверка адреса электронной почты при создании учётной записи.", то приходит письмо с нерабочей ссылкой (ссылка одноразового входа), а, если проверку адреса включить, ссылка приходит и все работает.
Если после регистрации он просит установить пароль, то почему в json запросе обязательно указывать 'pass' (пароль)? По паролю, который в "pass" войти не получается (пишет "неверный логин или пароль"), однако в mysql в паролях что-то лежит.

0 Спасибо

Проблема с кодировкой полученных данных JSON, модуль Services

Аватар пользователя tony_m

Есть сайт на Drupal и приложение на Android

При получение json на приложение полученные данные то что на русском языке отображаются некорректно. Примерно так \u045\u0390\....

В браузере русский текст отображается корректно, пробовал прописывать другие JSON в приложение - русский текст отображается.
В чем может быть проблема?

Вот код который принимает JSON:

public static String GET(String url){
        InputStream inputStream = null;
        String result = "";
        try {
               
            // create HttpClient
            HttpClient httpclient = new DefaultHttpClient();
 
            // make GET request to the given URL
            HttpResponse httpResponse = httpclient.execute(new HttpGet(url));
 
0 Спасибо

Модуль services, тестирование в админке.

Аватар пользователя likin

Привет.
Подскажите как тестировать модуль services.
Я с ним достаточно давно работал.
Я помню, что в админке можно было тестировать как сервисы отвечают.
Но не могу найти никакого упоминания.

0 Спасибо

Services, REST, OAuth, Client

Аватар пользователя likin

Доброго дня.

Стоит задача реализовать данную схему - Services, REST, OAuth. До этого я работал с XMLRPC и аутентификацией по сессии.
Подскажите какой клиент использовать для тэстирования, как работать с OAuth? Я предпологал, что появиться отдельный сервис для получения временных ключей но не нашёл.

Что-то нашёл
http://drupal.org/node/349516
Здесь собирают GET запрос, а в другом примере отправляют json.
Как именно надо и как привязать json.

Спасибо.

0 Спасибо

Добавить файл в ноду через REST. Как?

Аватар пользователя OldWiseCat

Уже сутки бьюсь и не могу добавить файл в поле файл в ноду!

0 Спасибо

Модуль Services

Аватар пользователя PainKIller

Здравствуйте! Я сам флеш-программист, вооружившись книгой Flash with Drupal я решил освоить создание флешсайтов с использованием друпала как бек-энда. Сразу же споткнулся с модулем Services - распаковал модуль в папку модули, в папку servers распаковал модуль AMFPHP, в него же вложил AMFPHP 1.9 в обещем все как написано в книге. Зашел в Модули - активировал модуль Services (версия 6.x-3.1), затем AMFPHP (версия 6.x-1.0-beta2). Никаких сообщений об ошибках не выкидывалось.

0 Спасибо

Services и Chrome Extension - не работает system.connect через jQuery.AJAX

Аватар пользователя qm69

Настроил модуль Services как REST сервер:

response formatters => JSON,
Request parsing => application/x-www-form-urlencoded,
Resource node => CRUD,
system => connect,
user => login & logout.

И все работает через Poster для Firefox и REST клиентами для Chrome.

А потом нашел пример JSON сервиса для Android. И когда я из этого примера сделал Chrome Extension ничего не заработало. Консоль выдает 200 ОК, но никаких данных в ответ и ошибку:

0 Спасибо

Модуль Services. Логин, проблема с cookies и sessions. Drupal 7

Аватар пользователя Kesselring

Возникла следующая задача - автоматически при логине с главного сайта(domain.com) я оказывался залогинен в другой дочерний сайт(child.domain.com).
Особое ударение на то, что только пользователь с главного сайта может логинится на дочерние, а не наоборот.

Установки:
1.Доменные имена (domain.com и child.domain.com), нацеленные на один сервер и один документ рут.
2.Drupal 7.
3.Установленный модуль Services 3 и Rest сервер.
4.Конфигурация EndPoint Authentication - Session authentication - отмечен.
5.Оба сайта в настройках settings.php имеют строку $cookie_domain = '.domain.com'

Я создал свой модуль который перехватывает операцию логина на главном сайте и автоматически отсылает CURL запрос на Services API дочернего сайта.
<?php?>

0 Спасибо

Невозможно создать node через xmlrpc

Аватар пользователя ojelem2001

Авторизация проходит на ура, 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($serverfalse$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
    
)));
?>

0 Спасибо

Drupal XmlRpc Date Api Services. Решение проблемы с глюками.

Аватар пользователя stillfinder

Немного помучившись с отправкой поля типа дата через xml-rpc на друпаловский сайт из программы на C# было найдено такое решение:

XmlRpcStruct node = new XmlRpcStruct();

string field_exclusive_date_to = "10.05.2024 0:00:00";
DateTime dtfield_exclusive_date_to = DateTime.Parse(field_exclusive_date_to);
AddArrayDateToNode("field_exclusive_date_to", dtfield_exclusive_date_to, node);

///
/// Добавляет в ноду поле с датой (Drupal Date)
///
///
///
///
/// Нужно написать в блоге каком то как это делать, ато все ебуться и никто еще не нашел.
private static void AddArrayDateToNode(string fieldname, DateTime dt, XmlRpcStruct node)
{
XmlRpcStruct sMainDate = new XmlRpcStruct();
XmlRpcStruct sDate = new XmlRpcStruct();
sDate["year"] = dt.Year.ToString();
sDate["month"] = dt.Month.ToString();
sDate["day"] = dt.Day.ToString();
sMainDate["value"] = sDate;
object[] oDate = new object[] { sMainDate };
node[fieldname] = oDate;
}

Все дело в том, что на Drupal сайте Date Api хранит дату немного не в том формате в котором отображает. Следовательно получение и отправка поля CCK типа Date будет сильно различаться.

Источник: http://stillfinder.blogspot.com/2011/05/drupal-xmlrpc-date-api-services.html

0 Спасибо

Ошибка при попытке использовать file.get в модуле services во время обмена по протоколу xml-rpc

Аватар пользователя stillfinder

Здравствуйте!
Пишу на C# программу, которая сможет обмениваться с Drupal сайтом посредством xml-rpc протокола(модуль services) и столкнулся со следующей проблемой: при попытке использовать file.get возвращается ошибка 401, доступ запрещен. Хотя в правах повыставлял уже все что нужно и ненужно. Возможно кто-то работал с модулем services или у кого-то есть соображения по поводу решения данной проблем.
Заранее благодарен за ваши советы.

0 Спасибо

Как сделать чтобы любой пользователь мог создавать контент без регистрации и затем мог редактировать его.

Аватар пользователя megabait

Задача:
Как сделать чтобы любой пользователь мог создавать контент без регистрации, в нашем случае это создать анонс меропртиятия и затем мог редактировать его. Т.е. он заполняет форму о названии, месте и т.п. затем в конце страницы он указывает свой емаил на который ему отправляется линк на страницу где он может редактировать свое мероприяите или удалить его. Страница редактирования чет-типо того
http://www.mysite.ru/content/new-party/641711300719419c7ba14d3d9db6086637735e61672832f
А при этом нормальная страница без ключа в конце http://www.mysite.ru/content/new-party. Вот только не знаю генерировать этот ключ каждый раз при создании контента или для каждого юзера свой индивидуальный. И вообще как это реализовать?
Подскажите как решить эту задачу
Думаю через Services, Known User Role и webform.

0 Спасибо