2016-07-09 10 views
6

Sto cercando di utilizzare MS botframework V3 per creare un bot di base utilizzando il codice tutorial nodejs, ma continuo a ricevere 401 Non autorizzato utilizzando l'emulatore. Per favore aiuto?Bot framework v3 non autorizzato

AppId/Secret sono impostati in variabili env e sicuramente corretti nell'emulatore.

codice qui sotto

var restify = require('restify'); 
var builder = require('botbuilder'); 

//========================================================= 
// Bot Setup 
//========================================================= 

// Setup Restify Server 
var server = restify.createServer(); 
server.listen(process.env.port || process.env.PORT || 3978, function() { 
    console.log('%s listening to %s', server.name, server.url); 
}); 

// Create chat bot 
var connector = new builder.ChatConnector({ 
    appId: process.env.MICROSOFT_APP_ID, 
    appPassword: process.env.MICROSOFT_APP_PASSWORD 
}); 
var bot = new builder.UniversalBot(connector); 
server.post('/api/messages', connector.listen()); 

//========================================================= 
// Bots Dialogs 
//========================================================= 

bot.dialog('/', function (session) { 
    session.send("Hello World"); 
}); 

risposta

6

provare a cambiare l'appId e appSecret a MicrosoftAppId e MicrosoftAppPassword rispettivamente

Come indicato sul sito botframework

In V1, le proprietà di autenticazione sono stati conservati con questi tasti:

  • App.
  • AppSecret

In V3, in modo da riflettere le modifiche al modello di autenticazione sottostante, questi tasti sono stati cambiati a:

  • MicrosoftAppId
  • MicrosoftAppPassword

Edit: Così, da un post su github di Steven i valori effettivi sono

  • APPID

  • appPassword

    Questi valori non funzionano con l'emulatore causa di un problema con il nodo SDK tuttavia essi dovrebbero funzionare quando utilizzato.

Link: https://github.com/Microsoft/BotBuilder/issues/625

+0

Grazie - la documentazione menziona ancora tutte le vecchie chiavi. –

+0

Si prega di votare la risposta se ti ha aiutato :) – xanish

+0

In realtà penso che la soluzione di cui sopra non è stata davvero la soluzione. Modificando tali valori, l'app non trova AppId/AppSecret in modo da disabilitare l'autenticazione. –

0

Sto avendo lo stesso il problema, ma posso ottenere la soluzione di cui sopra al lavoro. Sembra suggerire, puoi inserire qualsiasi valore per id e pw. Se non vengono trovati, l'autorizzazione è disattivata? È corretto? Ho provato questo

var connector = new builder.ChatConnector({appId:'999', appPassword: 'xxxx'}); 

E ho ancora un 401.

+0

Penso che sia corretto. Nel mio caso, ho fatto quanto segue: 1) Aggiorna NodeJS su Windows all'ultimo 2) elimina tutti i pacchetti NPM e ricompila 3) modifica le mie impostazioni in emulatore di bot per svuotare il nome utente/password e utilizzare localhost invece di 127.0.0.0. 1 e ha iniziato a funzionare in emulatore. –

1

Mentre si utilizza l'emulatore per la prima volta, stavo dando un AppID e una password per conto mio. Ho imparato che nessun ID app e nessuna password funzionano bene anche in locale.

: Rimozione di appid e password in web.config nell'applicazione bot e nell'emulatore risolto il mio errore. Spero che sia d'aiuto. Saluti!