在Node.js中使用skype-sdk构建的Skype bot运行不正常?

时间:2016-06-03 11:27:50

标签: node.js bots skypedeveloper skype-bots

我正在尝试构建skype bot。

我按照skype-sdk给出的文档但未能使用它创建它。无法从机器人那里得到答复。

const fs = require('fs');
const restify = require('restify');
const skype = require('skype-sdk');

const botService = new skype.BotService({
    messaging: {
        botId: 'xxxxxxxx-xxx-xxx-xxx-xxxxxxxxxxxx',
        serverUrl : "https://example.net",
        requestTimeout : 15000,
        appId: 'xxxxxxxx-xxx-xxx-xxx-xxxxxxxxxxxx',
        appSecret: 'xxxxxxxxxxxxxxxxxxxxxxxx'
    }
});

botService.on('contactAdded', (bot, data) => {
    console.log("bot replay");
    bot.reply('Hello ${data.fromDisplayName}!', true);
});

botService.on('personalMessage', (bot, data) => {
    console.log("person replay");
    bot.reply('Hey ${data.from}. Thank you for your message: "${data.content}".', true);
});

const server = restify.createServer();

server.use(skype.ensureHttps(true));
server.use(skype.verifySkypeCert({}));

server.post('/skbot', skype.messagingHandler(botService));
const port = process.env.PORT || 8080;
server.listen(port);
console.log('Listening for incoming requests on port ' + port);

由于

2 个答案:

答案 0 :(得分:3)

在提供的示例中,由于指定的服务器错误,机器人未连接到Skype服务器:

serverUrl : "https://example.net"

您必须指定有效的Skype服务器:

serverUrl : "https://apis.skype.com"

你还在server.post中指定了错误的API uri(实际上,这取决于你的webhook设置,但是没有提供,所以我假设默认):

server.post('/skbot', skype.messagingHandler(botService));

您必须使用'/v1/chat'进行消息传递。试试this tutorial

答案 1 :(得分:1)

使用Microsoft Bot Framework BotBuilder SDK构建您的僵尸程序,而不是使用skype-sdk程序包。

您可以使用以下示例代码构建基本的Skype机器人:

https://github.com/Microsoft/BotBuilder/blob/master/Node/examples/demo-skype/app.js

有关Skype功能的更详细示例,请在此处查看我在GitHub上的Skype bot示例:

https://github.com/nwhitmont/botframework-skype-support-dev/blob/master/server.js