Доступ к серверу Lotus Domino с iPhone

Я новичок в лотосных нотах и ​​сервере домино. Я хочу, чтобы у моего iPhone-приложения был доступ к серверу домино. Я хочу получить контакты с сервера домино в своем приложении для iPhone.

Погуглил, нашел много документов. но я не мог найти для этого идеального потока данных. Кто-нибудь может объяснить мне, как я могу получить Контакты / Календарь / Почту с сервера домино.

Какова цель использования java-агентов для заметок лотоса? Проще говоря, я хочу делать заметки Lotus для iPhone с помощью iPhone SDK 3.0.

Спасибо,


person xmax    schedule 10.11.2009    source источник


Ответы (2)


Поскольку вы не можете использовать java-библиотеки lotus для доступа к Lotus Domino, лучше всего будет получить доступ к Lotus Domino через HTTP для получения данных. Самый простой способ (если у вас нет опыта разработки в Lotus Notes) - это попытаться получить данные из существующих представлений в names.nsf (каталог сервера) и почтовых базах данных. Для этого вы можете вызвать представление со следующими параметрами:

http://www.yourserver.com/names.nsf/($users)?readviewentries
http://www.yourserver.com/names.nsf/($users)?readviewentries&outputformat=JSON

В каждом случае вы получаете данные из представления «($ users)» в базе данных «names.nsf» в формате XML или JSON.

Если вам нужно больше данных, чем доступно в существующих представлениях, я бы не рекомендовал создавать новые представления (поскольку это повлечет за собой изменение стандартных шаблонов). Для этого я бы создал новую базу данных с агентами, которые восстанавливали нужную вам информацию и возвращали ее в том формате, который вы предпочитаете.

Агенты - это просто блоки кода (обычно написанные на LotusScript, который похож на VBasic или Java). Их можно запланировать для запуска в определенное время или при определенных событиях или вызвать напрямую (из заметок или через URL-адрес). Вы можете вызвать агента, используя URL-адрес как таковой:

http://www.yourserver.com/names.nsf/myAgent?openagent

Из агента вы можете получить доступ к любым данным на сервере (если у вас есть на это разрешение) и вернуть «текст / html / что-то не двоичное» программе, запрашивающей URL-адрес.

Примечание. Только что выпущенный Lotus Domino 8.5.1 включает протокол ActiveSync, поэтому я не уверен в необходимости воссоздания клиента Notes на iPhone.

person salgiza    schedule 10.11.2009
comment
Если вы используете подход URL? ReadViewEntries, обратите внимание, что количество возвращаемых записей будет ограничено в зависимости от настроек в документе Server в NAB. По умолчанию возвращается только 30 записей. Вы можете добавить & count = -1, чтобы Domino возвращал максимально разрешенный, который также определен в документе сервера и также может не быть полным набором контактов. Используя агент, у вас не будет таких ограничений. - person Ed Schembor; 12.11.2009
comment
Правда, забыл об этом. Однако, чтобы решить эту проблему, я бы не стал изменять значения по умолчанию для сервера. Я бы рекомендовал добавить & count = 50 & start = 0 и пролистывать результаты (каждый раз меняя параметр start), пока мы не дойдем до конца каждого представления. P.S. Я думаю, что агент - лучшее решение (поскольку вы можете делать все, что захотите), но для этого вам понадобятся некоторые знания о разработке Lotus. - person salgiza; 12.11.2009
comment
Я реализую агент, и, по моему мнению, каждый пользователь должен установить агент из своего клиента Lotus Notes и конструктора домино. Я должен был бы предоставить код агента Java. Итак, поток приложения будет таким: jminteractive.com/index.php/iphone / notes_pro_server_setup я прав? Можно ли написать агент, который реализует все функции, такие как вход в систему, затем получение писем для сеанса и т. д. И для этого я не должен предоставлять код агента пользователю. и я могу установить свой агент на сервер домино, к которому все пользователи могут получить доступ со своим именем пользователя и паролем. Спасибо.... - person xmax; 30.12.2009
comment
Вход будет управляться сервером домино. Лучше всего создать агент в пустой базе данных на сервере и получить из него доступ к почтовой базе данных текущего пользователя. Концептуально это будет похоже на пример в предоставленной вами ссылке, но код будет в одном месте, а не в почтовой базе данных каждого пользователя. - person salgiza; 30.12.2009
comment
Как сервер домино будет управлять логином? И как я могу написать своему агенту (в созданном пустом файле базы данных), чтобы он читал файл почтовой базы данных для вошедшего в систему пользователя? Клиент iPhone должен указать имя пользователя, пароль и имя файла базы данных. - person xmax; 30.12.2009
comment
Базы данных Domino имеют ACL (списки контроля доступа). Если вы сконфигурируете свою базу данных так, чтобы анонимные пользователи не могли войти в систему, Domino автоматически запрашивает пользователя и пароль, когда вы пытаетесь получить доступ к базе данных. После того, как пользователь прошел проверку на сервере, он / она может получить доступ к базе данных, и вы можете получить имя пользователя из сеанса. Зная имя пользователя, вы можете получить путь к почтовой базе данных из документа человека в names.nsf. - person salgiza; 04.01.2010

Сначала вы упоминаете контакты, а затем упоминаете почту / календарь / контакты. Чего вы пытаетесь достичь в своем приложении для iPhone? Если вы пытаетесь создать какой-то клиент Notes локально, это кажется безумием. Уже есть два варианта:

  1. Просто используйте iNotes (т.е. веб-доступ для почты Notes и т. Д.), Который хорошо работает в Mobile Safari или;
  2. Используйте продукт IBM Lotus Traveler, который использует ActiveSync для использования почты / календаря / контактов Domino с собственными клиентами на iPhone.
person Ben    schedule 16.02.2010