Toegang tot de Exchange Kalender in Node.js via Connect Bridge

Toegang tot de Exchange kalender in Node.js via Connect Bridge

Ana NetoConnectors, Technical Leave a Comment

Microsoft heeft altijd API's & SDK's voor hun systemen die gemakkelijk bruikbaar zijn in .NET-talen.

Toegang tot dergelijke op Microsoft gebaseerde systemen vanuit Node.js-toepassingen, vooral die welke niet op een Microsoft Windows-platform zijn gehost, kan lastiger zijn.

Ik weet dat u bezwaar zou kunnen maken, door te zeggen dat er gewoonlijk webdiensten worden gepubliceerd samen met de API's & SDK's, maar hand op hart, bent u klaar om ze meteen op een snelle en efficiënte manier te gebruiken? Ik durf te wedden dat u enige vertraging in de leercurve verwacht.

Zou het niet eenvoudiger zijn als een integratieplatform u in staat zou stellen gegevens in belangrijke bedrijfssystemen te creëren, op te halen, bij te werken en te verwijderen via de uitvoering van eenvoudige SQL-statements? In eerste instantie klinkt dat misschien gevaarlijk - zouden die CRUD-bewerkingen de gegevensintegriteit niet in gevaar brengen?

Het feit is dat deze mogelijkheid bestaat - door gebruik te maken van de Connect Bridge platform, dat ik in deze tutorial van Connecting Software zal gebruiken. Het is een commercieel programma, maar je kunt het gratis uitproberen. Waarom probeer je het niet eens?

Aan de slag

Vraag uw Connect Bridge proefversie aan, download en activeer uw licentie door het volgende te doen instructievideo.

We hebben ook een machine nodig waarop Node.js is geïnstalleerd. We zullen dit demonstreren op een Linux machine met CentOS 7.x distributie.

Bereid de omgeving voor

Ik neem aan dat je je favoriete Linux distributie hebt gekozen. De eerste stap is om Node.js in je omgeving te installeren. Op CentOS, heb ik mijn favoriete package manager, Yum, gebruikt. Als je niet zeker weet hoe je Node.js in je OS installeert, raadpleeg dan de node.js deployment gidsen pagina.

U moet nu verbinding maken met uw doelsysteem, bijvoorbeeld Microsoft Exchange. Start hiervoor Connect Bridge Management Studio en  

  1. Voeg een account toe voor Exchange (Accounts - Account toevoegen). Voor het toevoegen van de account, moet u de connector Microsoft Exchange selecteren en uw Exchange login gegevens gebruiken 
  2. Open de optie New Query en vervolgens de Connection Browser. Zoek de Exchange Connector en vouw deze uit tot u de DefaultConnection ziet. Klik met de rechtermuisknop op de DefaultConnection en kies Get Connection string. Kopieer de ODBC-verbindingsstring, aangezien u die nodig zult hebben om hem door te geven aan het script. 
  3. Gebruik de optie Nieuwe query om een query uit te testen die toegang geeft tot wat u in Exchange nodig hebt. PMerk op dat hoewel het lijkt alsof we direct een database gebruiken, dat niet het geval is. Connect Bridge benadert de API en presenteert die alsof het een database is. Als je je query hebt, kopieer die dan, want je moet hem doorgeven aan het script. 

De oplossing


Update: De hieronder vermelde Connect Bridge Playground dienst is niet langer beschikbaar. Dit artikel zal binnenkort dienovereenkomstig worden bijgewerkt.

In de tussentijd, als u wilt Connect Bridge gebruiken voor uw Node.js integratie projecten, aarzel dan niet om een reactie hieronder achter te laten of neem direct contact op met onze deskundigen.


De procedure voor deze oplossing is als volgt:

  1. Maak een map voor de oplossing. Ik heb het 'nodearticle' genoemd om voor de hand liggende redenen.
  2. Maak een manifest bestand voor de nodejs applicatie. De bestandsnaam is package.json. Vind de inhoud van het bestand hieronder.
{
  "name": "nodejsExchangeDemo",
  "version": "0.0.1",
  "description": "een demonstratie van toegang tot exchnage kalender in nodejs",
  "main": "app.js",
  "author": {
    "name": "",
    "email": ""
  },
  "dependencies": {
  }
}

3. Voor deze actie moet de machine verbonden zijn met internet. Open uw favoriete commandoregel. En voer het volgende commando uit om een afhankelijkheids-module voor onze toepassing te installeren, genaamd connect-bridge-node.

npm install connect-bridge-node -save

Na deze actie zou de connect-bridge-node afhankelijkheid moeten verschijnen in ons package.json manifest bestand.
4. In de volgende stap zullen we de broncode van de module connect-bridge-node (door mij geschreven) zelf een beetje uitbuiten. We kopiëren het bestand test.js van de github repository van de module. en pas het zo aan dat het er zo uitziet (we zullen de code uitleggen in de code commentaren zelf):

//vereis de moduleafhankelijkheid en geef uw verbindingsparameters door
//om uw connect-bridge-node-referenties te verkrijgen, volgt u
//het hoofdstuk over "Hoe kom ik achter mijn inloggegevens?" in
//dit artikel
var cbnode = require('connect-bridge-node')('pg.connecting-software.com', 4433, 'michalhainc0036',
					 '29e)5d2bc9044e2c42878A4A63BC6777', 'EX2010_PLAYGROUND_michalhainc0036');
 
//error handler voor verbindingsbrug operaties
functie onError(err) {
    console.error(err);
}
 
//connected event handler - uitgevoerd wanneer succesvol verbonden
//met een Connect Bridge integratie
//server instantie
functie onConnected() {
    console.log('Verbonden met Connect Bridge');
    console.log('Record invoegen in Exchange kalender...');
    //Na succesvolle verbinding zullen we
	//een afspraak aanmaken en de onRecordInserted aanroepen
	//callback daarna
    cbnode.execute("INSERT INTO [Afspraak] (Onderwerp, BeginDatum, EindDatum, Plaats) "+
				   "WAARDEN (?, ?, ?, ?); ",
				   //parameters voor het insert statement
				   ['mijn afspraak', '2015-10-11 10:00', '2015-10-11 10:00', 'Bratislava' ],
				   onRecordInserted, onError);
}
 
functie onRecordInserted() {
    /eerste 100 afspraken uit de Exchange kalender
    /van onze CB speeltuin account
    /we halen alleen bepaalde velden op
    console.log("Eerste 100 afspraken ophalen uit Exchange kalender...")
    cbnode.execute("SELECT TOP 100 Onderwerp, Plaats, BeginDatum, EindDatum "+
					"FROM [Afspraak];",
					//lege params array
					[], onRecordsRetrieved, onError);
}
 
//disconnected event handler - uitgevoerd wanneer succesvol ontkoppeld
//from een Connect Bridge integratie
//server instantie
functie onDisconnected() {
    console.log('Ontkoppeld');
}
 
//records received event handler - uitgevoerd wanneer gegevensrecords zijn
//ontvangen van Connect Bridge voor een eerder uitgevoerd SQL statement
function onRecordsRetrieved(result)
{
    console.log(resultaat);
    cbnode.disconnect(onDisconnected, onError);
}
 
//begin verbinding te maken met de Connect Bridge integratieserver
cbnode.connect(onConnected, onError);

5. Voer uw app.js uit via de opdrachtregel met behulp van het volgende commando


node app.js

6. Het app.js script voegt één afspraak in in uw CB Playground Exchange kalender. En haalt daarna de eerste 100 afspraken uit je agenda.
7. Als alles goed is gegaan, zou je de volgende uitvoer moeten zien:

Exchange kalender in Node.js

8. En voi-la, daar zou uw afspraak moeten staan in de Outlook Web Access van de CB Playground Exchange server:

Exchange kalender in Node.js

Hoe kom ik achter mijn geloofsbrieven?

Hier is een korte handleiding om uw referenties te achterhalen:

Download de Connect Bridge Speeltuin Klantpakket (u heeft een hyperlink die ernaar verwijst in uw registratie email). Indien u nog geen gratis speeltuin account heeft, aarzel dan niet om u te registreren.
Pak de inhoud van het pakket uit en zoek het CBQueryAnalyzer.bat bestand en voer het uit

Exchange kalender in Node.js

De Query Analyzer applicatie zal u vragen om een ODBC driver te registreren, (enkel nodig voor de app, niet voor uw app.js node project).
Klik met de rechtermuisknop op de EX2010-verbinding in het linkerdeel van het verbindingspaneel. Kies 'Verbinding bewerken

Exchange kalender in Node.js

Ga naar het tabblad 'Geavanceerd' en kopieer de onderstreepte referenties naar je app.js script behalve van de poort parameter die in ons geval 4433 zou moeten zijn.

Exchange kalender in Node.js

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

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