Создаем Drupal-страницы из C♯ (XML-RPC node.save)

В данном способе создания нод будут использоваться модули Key Authentication, XMLRPC Server, Node Service и User Service из решения Drupal Services 6.x-2.2 (выбрал 6.x-2.2 как наиболее безглючную)
Подключаем их, далее идем в панели Administer › Site building › Services Administer › Site building › Services, жмем “Создать ключ”, задаем название, указываем что-нибудь в поле “Allowed domain” и выбираем разрешенные методы – в моем случае это system.connect, user.login и node.save. В настройках модуля Services выбираем тип авторизации – “Key Authentication”.
Скачиваем библиотеку XML-RPC.NET, компилим ее и добавляем в ссылки проекта VS2008 файл CookComputing.XmlRpcV2.dll, в using добавляем CookComputing.XmlRpc и System.Security.Cryptography.
Внутри класса добавляем:

Создание ноды будем производить, скажем, по нажатию кнопки, обработчик будет такой:

Дополнительные функции:

Expand

[collapse]

Из-за string CCK-полей VS у меня ругалась “Response from server does not contain valid xml” и “Существует несколько корневых элементов” (“There are multiple root elements”). Fiddler показал ошибку “Cannot unset string offsets”:
fiddler
Исправил применением патча к файлу /sites/all/modules/cck/includes/content.node_form.inc
P.S.
В случае проблем с CCK-полями советую использовать библиотеку DrupalXmlRpc.NET, скопировал ее и пример использования сюда:

  1. DrupalXmlRpc.NET_Demo
  2. MolineSoftware.DrupalXmlRpc_V2.0 , можете скачать.
    Объявляйте-добавляйте в CustomNode.cs свои CCK-поля:

Скачать проект Visual Studio 2008: drU-XRPC.cab

Discussion

Uchla
16.12.2014
Внесите изменения в /admin/build/services/keys - надо дать разрешения используемым методам (поставьте галочку node.get в вашем случае) и здесь пишут так:
So, we need to set the following permissions:
module		permission				role
node_service	load node data				anonymous
services	administer services			administrator
system_service	[none for anonymous for this example]	anonymous
user_service	[none for anonymous for this example]	anonymous
Uchla
16.12.2014
у MolineSoftware.DrupalXmlRpc такая ошибка возникает, когда вы объявляете CCK поле в классе ExmaplNode, но не заполняете его
Guest
16.12.2014
в 2010-й студии это скомпилится?
Guest
16.12.2014
Здравствуйте, не могу скачать ваш файл drU-XRPC.cab - не найден. Перезалете пожалуйста
Антон
16.12.2014
Здравствуйте! Вы перезаливали файл druxrpc.cab? Тоже не получается скачать...
Drupal
16.12.2014
Не могу получить содержимое ни одной ноды ("node.get") все время выдает access denied
Гость
16.12.2014
Здравствуйте. Пробовал сделать как у вас, но все время выходит ошибка "Items in array cannot be null". Как понять какой array я не заполнил и где?

Җавап калдыру



All fields are required. Your email address will not be published.