Я пишу свое первое приложение, используя Appcelerator Titanium, и у меня возникла загвоздка, которая, кажется, может поколебать. Любой другой сервис, который я использовал, работает через JSON-сервер (node.get, view.get, system.connect), но я не могу на всю жизнь получить рабочее решение node.save. Я пытался найти людей в моей лодке и ничего не могу найти, но я также нигде не могу найти рабочее решение.
Я использовал следующую запись блога в качестве отправной точки:
http://civicactions.com/blog/2010/may/02/tutorial_code_developing_apps_iphoneipadandroid_using_drupal_base_system
Я пробовал и JSON, и XMLRPC, но я не получил ответа с JSON и Доступ запрещен с XMLRPC. Если я подключу свой JSON к странице служб через drupal admin, он создаст узел (не узел CCK, но он работал с историей), но, пройдя через приложение, я ничего не получу.
Вот мой вывод с использованием XMLRPC:
Узел объекта -
[INFO] {
sessid = b03429453c85d4bf3d600dff6511f70f;
title = "This is a new node.";
type = story;
}
[INFO] xmlrpc: begin
[INFO] xmlrpc: url: http://mysite/services/xmlrpc
[INFO] xmlrpc: method: node.save
[INFO] xmlrpc: p: story
[INFO] xmlrpc: p: This is a new node.
[INFO] xmlrpc: p: b03429453c85d4bf3d600dff6511f70f
отправка XML -
[INFO] xmlrpc: xml: <methodCall><methodName>node.save</methodName><params><param><string>story</string></param><param><string>This is a new node.</string></param><param><string>b03429453c85d4bf3d600dff6511f70f</string></param></params></methodCall>
[INFO] xmlrpc: end
Ответ -
[INFO] Received: <?xml version="1.0"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value><int>401</int></value>
</member>
<member>
<name>faultString</name>
<value><string>Access denied</string></value>
</member>
</struct>
</value>
</fault>
</methodResponse>
Вот что я получаю с JSON:
[INFO] {"method":"node.save","type":"story","title":"This is a new node.","sessid":"b03429453c85d4bf3d600dff6511f70f"}
[INFO] node.save response: undefined
[WARN] Exception in event callback. {
line = 90;
message = "Unable to parse JSON string";
name = SyntaxError;
sourceId = 204738256;
sourceURL = "file://localhost/Users/justin/Sites/Apps/appname/Resources/add.js";
}
Я не получаю отказ в доступе, но он не отправляет ответ обратно в приложение.
Кто-нибудь еще сталкивался с этой проблемой, и если да, то смогли ли вы найти решение для нее?