Доступ к календарю Exchange в Node.js через Connect Bridge

Доступ к календарю Exchange в Node.js через Connect Bridge

Georgii KapanadzeConnectors, Technical Leave a Comment

У Microsoft всегда есть API и SDK для своих систем, которые легко использовать на .NET языках.

Доступ к таким системам на базе Microsoft из приложений Node.js, особенно тех, которые не размещены на платформе Microsoft Windows, может быть более сложным.

Я знаю, что вы можете возразить, сказав, что обычно есть веб-сервисы, опубликованные вместе с API и SDK, но от всего сердца, готовы ли вы сразу же использовать их быстро и эффективно? Держу пари, что вы ожидаете некоторой задержки в обучении.

Не проще ли было бы, если бы интеграционная платформа позволяла создавать, извлекать, обновлять и удалять данные в основных бизнес-системах с помощью выполнения простых SQL-запросов? Сначала это может показаться опасным - не будут ли эти CRUD-операции угрожать целостности данных?

Дело в том, что такая возможность существует - при использовании Connect Bridge платформу, которую я буду использовать в этом учебнике от Connecting Software. Это коммерческий инструмент, но вы можете получить доступ к его пробной версии бесплатно. Почему бы вам не попробовать?

Начало работы

Запросите вашу пробную версию Connect Bridge, загрузите и активируйте вашу лицензию, выполнив следующее обучающий видеоролик.

Нам также понадобится машина с установленным Node.js. Мы будем демонстрировать на машине с ОС Linux под управлением дистрибутива CentOS 7.x.

Подготовка окружающей среды

Полагаю, Вы выбрали свой любимый дистрибутив Linux. Первый шаг - это установка Node.js в Ваше окружение. На CentOS я использовал свой любимый менеджер пакетов, Yum. Если вы не уверены, как установить Node.js в вашу операционную систему, пожалуйста, проконсультируйтесь по адресу страница руководства по развёртыванию node.js.

Теперь вам нужно подключиться к целевой системе, например, Microsoft Exchange. Для этого запустите Connect Bridge Management Studio и  

  1. Добавьте учетную запись для Exchange (Учетные записи - Добавить учетную запись). Для добавления учетной записи необходимо выбрать коннектор Microsoft Exchange и использовать учетные данные для входа в Exchange 
  2. Откройте опцию New Query (Новый запрос), а затем Connection Browser (Браузер соединений). Найдите коннектор Exchange и разверните его, пока не увидите DefaultConnection. Щелкните правой кнопкой мыши DefaultConnection и выберите Get Connection string. Скопируйте строку подключения ODBC, так как она понадобится для передачи сценарию. 
  3. Используйте опцию "Новый запрос", чтобы проверить запрос, который получит доступ к тому, что вам нужно в Exchange. PОбратите внимание, что хотя это выглядит так, как будто мы используем базу данных напрямую, это не так. Connect Bridge получает доступ к API, а затем представляет его так, как будто это база данных. Как только вы составите запрос, скопируйте его, так как вам нужно будет передать его в сценарий. 

Решение


Обновление: Упомянутая ниже услуга Connect Bridge "Детская площадка" больше не доступна. В ближайшее время эта статья будет соответствующим образом обновлена.

Тем временем, если вы хотите использовать Connect Bridge для ваших интеграционных проектов Node.js, не стесняйтесь оставить комментарий ниже или свяжитесь напрямую с нами. эксперты.


Продедукция для этого решения выглядит следующим образом:

  1. Создайте папку для решения. Я назвал ее "nodearticle" по очевидным причинам.
  2. Создайте файл манифеста для приложения nodejs. Имя файла: package.json. Найдите содержимое файла ниже.
{
  "имя": "nodejsExchangeDemo",
  "версия": "0.0.1",
  "описание": "демонстрация доступа к календарю обменов в узлах",
  "главный": "app.js",
  "автор": {
    "имя": "",
    "электронная почта": ""
  },
  "зависимости": {
  }
}

3. Для этого нам нужно, чтобы машина была подключена к Интернету. Откройте вашу любимую оболочку. И выполните следующую команду для установки модуля зависимостей для нашего приложения под названием connect-bridge-node.

npm установка соединения-мост-узел -сохранение

После этого действия в нашем файле-манифесте package.json должна появиться зависимость от узла connect-bridge-node.
4. На следующем этапе мы немного используем сам исходный код модуля connect-bridge-node (написанный мной). Мы скопируем файл test.js из файла github-репозиторий модуля. и модифицировать его так, чтобы он выглядел следующим образом (мы объясним код в самих комментариях к коду):

//требуйте зависимости от модуля и передайте параметры подключения.
// чтобы получить ваши реквизиты узла соединения-моста, пожалуйста, следуйте
// глава "Как мне узнать мои полномочия?" в
//эта статья
var cbnode = require('connect-bridge-node')('pg.connecting-software.com', 4433, 'michalhainc0036',
					 '29e)5d2bc9044e2c42878A4A63BC6777', 'EX2010_PLAYGROUND_michalhainc0036');
 
// обработчик ошибок для операций соединения моста
функция onError(err) {
    console.error(err);
}
 
// подключенный обработчик событий - выполняется при успешном подключении.
// к интеграции Connect Bridge
//служебная инстанция
функция onConnected() {
    console.log('Connected to Connect Bridge');
    console.log('Вставка записи в календарь Exchange...');
    // после успешного подключения мы
	//Создайте одну встречу и позвоните в OnRecordInserted/
	//после этого отступление
    cbnode.execute("INSERT INTO [Назначение] (Тема, Начальная дата, Конечная дата, Местоположение) "+
				   "ЦЕННОСТИ (?, ?, ?, ??);",
				   //параметры для заявления о вставке
				   ["мое назначение", "2015-10-11 10:00", "2015-10-11 10:00", "Братислава"],
				   onRecordInserted, onError);
}
 
функция onRecordInserted() {
    //первые 100 назначений из календаря 1ТП23Т/
    //с нашего счета на игровой площадке CB
    //мы получим только определенное поле/
    console.log("Получение первых 100 встреч из календаря Exchange...").
    cbnode.execute( "SELECT TOP 100 Subject, Location, StartDate, EndDate "+
					"ОТ [Назначение];",
					//пустой массив параметров
					[], onRecordsRetrieved, onError );
}
 
// отключенный обработчик событий - выполняется при успешном отключении.
// из интеграции Connect Bridge
//служебная инстанция
функция onDisconnected() {
    console.log('Disconnected');
}
 
// обработчик полученных записей событий - выполняется, когда записи данных являются
//получен из Connect Bridge для ранее выполненного SQL-оператора
функция onRecordsRetrieved(result)
{
    console.log(result);
    cbnode.disconnect(onDisconnected, onError);
}
 
//начало подключения к серверу интеграции Connect Bridge
cbnode.connect(onConnected, onError);

5. Запустите ваше app.js через командную строку, используя следующую команду


приложения узла

6. Скрипт app.js вставит одну встречу в ваш календарь CB Playground Exchange. И получит первые 100 встреч из вашего календаря после этого.
7. Вы должны увидеть следующий вывод, если все прошло хорошо:

Календарь Exchange в Node.js

8. И voi-la, должна быть ваша встреча, показанная в Outlook Web Access сервера CB Playground Exchange:

Календарь Exchange в Node.js

Как мне узнать мои документы?

Вот краткий обзор, чтобы узнать ваши полномочия:

Скачать Connect Bridge Клиентский пакет для игровой площадки (у вас есть гиперссылка, указывающая на нее в вашем регистрационном электронном письме). Если у вас еще нет аккаунта на бесплатной игровой площадке, пожалуйста, не стесняйтесь регистрироваться.
Извлечь содержимое пакета, найти файл CBQueryAnalyzer.bat и запустить его.

Календарь Exchange в Node.js

Приложение Query Analyzer спросит вас о регистрации драйвера ODBC (требуется только для приложения, а не для вашего проекта узла app.js).
Щелкните правой кнопкой мыши на подключении EX2010 на левой панели подключения. Выберите "Редактировать соединение".

Календарь Exchange в Node.js

Перейдите на вкладку 'Дополнительно' и скопируйте подчеркнутые учетные данные в сценарий app.js. за исключением параметра порта, который должен быть в нашем случае 4433.

Календарь Exchange в Node.js

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

I agree to these terms.