Accesso al Calendario Exchange in Node.js via Connect Bridge

Accesso al calendario Exchange in Node.js tramite Connect Bridge

Ana NetoConnectors, Technical Leave a Comment

Microsoft dispone sempre di API e SDK per i propri sistemi facilmente utilizzabili nei linguaggi .NET.

L'accesso a tali sistemi basati su Microsoft da applicazioni Node.js, specialmente quelle non ospitate su una piattaforma Microsoft Windows, può essere più complicato.

So che potreste obiettare, dicendo che di solito ci sono servizi web pubblicati insieme alle API e agli SDK, ma a cuor leggero, siete pronti a usarli subito in modo veloce ed efficiente? Scommetto che vi aspettate un certo ritardo nella curva di apprendimento.

Non sarebbe più semplice se una piattaforma di integrazione consentisse di creare, recuperare, aggiornare ed eliminare dati nei principali sistemi aziendali tramite l'esecuzione di semplici istruzioni SQL? A prima vista, potrebbe sembrare pericoloso: queste operazioni CRUD non minaccerebbero l'integrità dei dati?

Il fatto è che questa possibilità esiste: utilizzando il Connect Bridge piattaforma, che userò in questo tutorial da Connecting Software. Si tratta di uno strumento commerciale, ma è possibile accedere alla sua versione di prova gratuitamente. Perché non provarlo?

Per iniziare

Richiedi il tuo trial Connect Bridge, scarica e attiva la tua licenza seguendo questa procedura video tutorial.

Avremo anche bisogno di una macchina con Node.js installato. Dimostreremo su una macchina Linux con una distribuzione CentOS 7.x.

Preparare l'ambiente

Presumo che tu abbia scelto la tua distribuzione Linux preferita. Il primo passo è installare Node.js nel tuo ambiente. Su CentOS ho utilizzato il mio gestore di pacchetti preferito, Yum. Se non sei sicuro di come installare Node.js nel tuo sistema operativo, consulta il pagina delle guide all'installazione di node.js.

Ora è necessario collegarsi al sistema di destinazione, ad esempio Microsoft Exchange. Per questo, eseguire Connect Bridge Management Studio e  

  1. Aggiungi un account per Exchange (Account - Aggiungi account). Per aggiungere l'account, devi selezionare il connettore Microsoft Exchange e utilizzare le tue credenziali di accesso Exchange. 
  2. Aprire l'opzione Nuova Query e poi il Browser di connessione. Trovare il Connettore Exchange ed espanderlo fino a visualizzare la DefaultConnection. Fare clic con il tasto destro del mouse sulla DefaultConnection e scegliere Get Connection string. Copiare la stringa di connessione ODBC, in quanto ne avrete bisogno per trasmetterla allo script. 
  3. Utilizzare l'opzione New Query per testare una query che accederà a ciò di cui si ha bisogno in Exchange. PSi noti che, sebbene sembri che stiamo usando direttamente un database, non è così. Connect Bridge sta accedendo all'API e poi la presenta come se fosse un database. Una volta che avete la vostra richiesta, copiatela, in quanto dovrete passarla allo script. 

La soluzione


Aggiorna: Il servizio Connect Bridge Playground di cui sotto non è più disponibile. Questo articolo sarà presto aggiornato di conseguenza.

Nel frattempo, se volete utilizzare Connect Bridge per i vostri progetti di integrazione di Node.js, non esitate a lasciare un commento qui sotto o a mettervi direttamente in contatto con il nostro esperti.


La prodedura per questa soluzione è la seguente:

  1. Crea una cartella per la soluzione. L'ho chiamata ‘nodearticle’ per ovvie ragioni.
  2. Creare un file manifesto per l'applicazione nodejs. Il nome del file è package.json. Trovare il contenuto del file qui sotto.
{
  "nome": "nodejsExchangeDDemo",
  "versione": "0.0.1",
  "descrizione": "una dimostrazione di accesso al calendario di escrescenza nei nodej",
  "principale": "app.js",
  "autore": {
    "nome": "",
    "e-mail": ""
  },
  "dipendenze": {
  }
}

3. Per questa azione abbiamo bisogno che la macchina sia collegata a Internet. Apri il tuo guscio preferito. Ed eseguire il seguente comando per installare un modulo di dipendenza per la nostra applicazione chiamato connect-bridge-nodo.

npm installare collegamento-ponte-ponte-nodo -salvare

Dopo questa azione la dipendenza da connessione ponte-ponte-nodo dovrebbe apparire nel nostro file manifesto package.json.
4. Nel prossimo passo sfrutteremo un po' il codice sorgente stesso del modulo connect-bridge-nodo (scritto da me). Copieremo il file test.js dal file github repository del modulo. e modificarlo in modo che assomigli a questo (spiegheremo il codice nei commenti del codice stesso):

//richiedere la dipendenza dal modulo e passare i parametri di connessione
// per ottenere le credenziali di collegamento ponte-ponte-nodo si prega di seguire
// il capitolo "Come faccio a scoprire le mie credenziali?
//questo articolo
var cbnode = require('connect-bridge-node')('pg.connecting-software.com', 4433, 'michalhainc0036',
					 '29e)5d2bc9044e2c42878A4A63BC6777', 'EX2010_PLAYGROUND_michalhainc0036');
 
//gestore degli errori per le operazioni di collegamento a ponte
funzione onError(err) {
    console.error(err);
}
 
//connected event handler - eseguito quando è stato collegato con successo
// a un'integrazione Connect Bridge
// istanza del server
funzione suConnected() {
    console.log ('Connesso a Connect Bridge');
    console.log('Inserimento record a Exchange Calendario...');
    //a dopo una connessione di successo
	//creare un appuntamento e chiamare l'onRecordInserted
	//callback dopo
    cbnode.execute("INSERIRE INTO [Appuntamento] (Oggetto, StartDate, EndDate, Località) "+
				   "VALORI (?, ?, ?, ?, ?); ",
				   //parametri per la dichiarazione di inserimento
				   ['il mio appuntamento', '2015-10-11 10:00', '2015-10-11 10:00', 'Bratislava' ],
				   onRecordInserted, onError);
}
 
funzione suRecordInserted() {
    //primi 100 appuntamenti dal calendario Exchange
    //f dal nostro conto del parco giochi CB
    // recupereremo solo un certo campo
    console.log ("Recuperare i primi 100 appuntamenti dal calendario Exchange...")
    cbnode.execute("SELEZIONA TOP 100 Oggetto, Posizione, StartDate, EndDate "+
					"DA [Appuntamento];",
					// array di parametri vuoti
					[], onRecordsRetrieved, onError);
}
 
//disconnected event handler - eseguito quando viene scollegato con successo
//f da un'integrazione Connect Bridge
// istanza del server
funzione suDisconnected() {
    console.log ('Disconnesso');
}
 
//registrazioni ricevute event handler - eseguite quando i record di dati sono
//ricevuto da Connect Bridge per uno statement SQL eseguito in precedenza
funzione suRecordsRetrieved(risultato)
{
    console.log(risultato);
    cbnode.disconnect(onDisconnected, onError);
}
 
// iniziare la connessione al server di integrazione Connect Bridge
cbnode.connect(onConnected, onError);

5. Eseguire l'app.js tramite la riga di comando utilizzando il seguente comando


nodo app.js

6. Lo script app.js inserirà un appuntamento nel vostro calendario del CB Playground Exchange. E recupera i primi 100 appuntamenti dal vostro calendario in seguito.
7. Se tutto è andato bene, dovreste vedere la seguente uscita:

Calendario Exchange in Node.js

8. E voi-la, ci dovrebbe essere il vostro appuntamento mostrato nel Web Access Outlook del server CB Playground Exchange:

Calendario Exchange in Node.js

Come faccio a scoprire le mie credenziali?

Ecco una breve panoramica per scoprire le vostre credenziali:

Scarica il Pacchetto client Connect Bridge Playground (nella tua email di registrazione hai un hyperlink che lo indica). Se non avete ancora un account gratuito per il parco giochi, non esitate a registrarvi.
Estrarre il contenuto della confezione e trovare il file CBQueryAnalyzer.bat ed eseguirlo

Calendario Exchange in Node.js

L'applicazione Query Analyzer vi chiederà di registrare un driver ODBC (necessario solo per l'applicazione, non per il vostro progetto del nodo app.js).
Fai clic con il pulsante destro del mouse sulla connessione EX2010 nel pannello delle connessioni a sinistra. Seleziona ‘Modifica connessione’.’

Calendario Exchange in Node.js

Vai alla scheda ‘Avanzate’ e copia le credenziali sottolineate nel tuo script app.js. tranne che del parametro della porta che dovrebbe essere nel nostro caso 4433.

Calendario Exchange in Node.js

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

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