В модуле Services 3.x для Drupal 6 или 7 вам необходимо создать конечную точку через пользовательский интерфейс, например:
- Имя: my_services
- Название конечной точки: MyСлужбы
- Сервер: REST
- Путь к конечной точке: my_services_path
Затем включите следующий ресурс для вновь созданной конечной точки:
Если ваше мобильное приложение основано на HTML5 и JS, вы можете использовать Ajax, например, в PhoneGap с jQueryMobile, вы можете создать страницу входа в систему, которая будет загружать ваш пользовательский файл JS:
<div data-role="page" id="page_login">
<script type="text/javascript" charset="utf-8" src="my_app_login.js"></script>
<div data-role="header">
<h1>Login</h1>
</div><!-- /header -->
<div data-role="content" class='content'>
<div>
<label for="page_login_name">Username</label>
<input type="text" id="page_login_name" />
</div>
<div>
<label for="page_login_pass">Password</label>
<input type="password" id="page_login_pass" />
</div>
<fieldset>
<div><button type="button" data-theme="b" id="page_login_submit">Login</button></div>
</fieldset>
</div><!-- /content -->
</div><!-- /page -->
Затем, когда нажимается кнопка входа в ваше приложение, эта реализация переходит в my_app_login.js с кодом вашего приложения:
$('#page_login_submit').on('click',function(){
// grab form input
var name = $('#page_login_name').val();
if (!name) { alert('Please enter your user name.'); return false; }
var pass = $('#page_login_pass').val();
if (!pass) { alert('Please enter your password.'); return false; }
// make the services call
var data_string = 'username=' + encodeURIComponent(name);
data_string += '&password=' + encodeURIComponent(pass);
$.ajax({
url: "http://example.com/?q=my_services_path/user/login.json",
type: 'post',
data: data_string,
dataType: 'json',
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert('page_login_submit - failed to login');
console.log(JSON.stringify(XMLHttpRequest));
console.log(JSON.stringify(textStatus));
console.log(JSON.stringify(errorThrown));
},
success: function (data) {
alert('You are now logged in!');
}
});
return false;
});
Независимо от того, какую платформу (ы) вы используетечтобы разработать мобильное приложение, вызов на сервисный ресурс пользователя будет таким же.
У меня есть хороший пример PhoneGap и Drupal:
http://tylerfrankenstein.com/code/android-app-with-drupal-7-services-phonegap-and-jquery-mobile
В качестве альтернативы я сделал модуль, которыйобеспечивает прочную основу для связи с сайтом Drupal 6 или 7 через PhoneGap и Services 3.x, он называется DrupalGap: