2016-07-09 20 views
6

Tôi đang cố gắng sử dụng MS botframework V3 để tạo bot cơ bản bằng mã hướng dẫn nodejs, nhưng tôi tiếp tục nhận được 401 Unauthorized bằng trình mô phỏng. Hãy giúp tôi?Bot framework v3 không được phép

AppId/Secret được đặt trong các biến env và chắc chắn chính xác trong trình mô phỏng.

Mã dưới đây

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"); 
}); 

Trả lời

6

hãy thử thay đổi AppID và appSecret để MicrosoftAppId và MicrosoftAppPassword tương ứng

Như đã trình bày trên trang web botframework

Trong V1, các thuộc tính xác thực được lưu trữ với các phím:

  • AppId
  • AppSecret

Trong V3, để phản ánh những thay đổi trong mô hình auth cơ bản, các phím này đã được thay đổi để:

  • MicrosoftAppId
  • MicrosoftAppPassword

Edit: Vì vậy, từ một bài đăng trên github bởi Steven giá trị thực tế là

  • AppID

  • appPassword

    Những giá trị này sẽ không làm việc với các giả lập do một vấn đề với nút sdk tuy nhiên họ nên làm việc khi triển khai.

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

+0

Cảm ơn - tài liệu vẫn đề cập đến tất cả các khóa cũ. –

+0

Hãy bỏ phiếu cho câu trả lời nếu nó giúp bạn :) – xanish

+0

Thực ra tôi nghĩ giải pháp trên không thực sự là giải pháp. Bằng cách thay đổi các giá trị đó, ứng dụng không tìm thấy AppId/AppSecret để nó vô hiệu hóa xác thực. –

0

Tôi gặp cùng vấn đề này, nhưng tôi có thể nhận được các giải pháp trên để làm việc. Nó xuất hiện để đề nghị, bạn có thể đặt trong bất kỳ giá trị cho id và pw. Nếu chúng không được tìm thấy, thì ủy quyền sẽ bị tắt? Điều này có đúng không? Tôi cố gắng này

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

Và tôi vẫn nhận được một 401.

+0

Tôi nghĩ điều này là chính xác. Trong trường hợp của tôi, tôi đã làm như sau: 1) Cập nhật NodeJS trên cửa sổ thành mới nhất 2) xóa tất cả các gói NPM và xây dựng lại 3) thay đổi cài đặt của tôi trong trình mô phỏng bot để trống tên người dùng/mật khẩu và sử dụng localhost thay vì 127.0.0.0. 1 và nó bắt đầu làm việc trong trình giả lập. –

1

Trong khi sử dụng giả lập cho lần đầu tiên, tôi đã đưa ra một APPID và mật khẩu trên của riêng tôi. Tôi đã học được rằng không có id ứng dụng và không có mật khẩu cũng hoạt động tốt ở địa phương.

: Xóa appid và mật khẩu trong web.config trong ứng dụng bot và trong trình mô phỏng đã giải quyết được lỗi của tôi. Hy vọng nó giúp. Chúc mừng!

Các vấn đề liên quan