skype聊天机器人不在组中发送消息

时间:2018-03-12 10:37:59

标签: botframework skype

我刚尝试使用node.js创建一个非常简单的聊天机器人。我已经在网络应用程序中使用它并使用一对一聊天。只要我将它添加到组中,它就不会响应消息。我尝试过使用" @ botname"信息没有它,但它仍然没有用。

我已经把它交给了一些朋友来测试,他们也遇到了同样的问题。一对一但不在小组中工作。

我还没有发布应用程序,但据我所知,仅用少于100个用户进行测试时,这是不必要的。

以下是我使用的代码,它是在typescript中,但编译的javascript仍然有效。

import * as builder from 'botbuilder';
import * as restify from 'restify';
declare var process;

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

const connector = new builder.ChatConnector({
    appId: process.env.MicrosoftAppId,
    appPassword: process.env.MicrosoftAppPassword
});

server.post('/api/messages', connector.listen());

const bot = new builder.UniversalBot(connector, (session) => {
    const text = session.message.text;
    if(text.startsWith("#")) {
        // interpret roll
        const textAfterHash = text.substr(1);
        const value = Number(textAfterHash);
        if (!isNaN(value)) {
            const rollArray: number[] = new Array<number>();
            let hits: number = 0;
            let misses: number = 0;
            for (let index = 0; index < value; index++) {
                let roll = Math.floor(Math.random() * 6) + 1;
                if (roll >= 5) {
                    hits++;
                } else{
                    misses++;
                }  
                rollArray.push(roll);          
            }
            const finalString = `Hits: ${hits} / Missses: ${misses}, Rolls: ${rollArray.join(",")}`
            session.send(finalString);       
        }
    }
});

以下是我的package.json

的依赖项
"dependencies": {
    "botbuilder": "^3.14.0",
    "restify": "^6.3.4",
    "typescript": "^2.7.2"
  }

1 个答案:

答案 0 :(得分:1)

事实证明我应该做更多的调试。当您在消息中使用@botname时,它也会发送该文本,所以您只需要清理文本的那一部分并且一切正常:)