【问题标题】:Skype bot install restrictionSkype 机器人安装限制
【发布时间】:2016-09-15 12:49:21
【问题描述】:

我正在使用 Microsoft BotFramework 为 Skype 开发一个机器人,我正在寻找一种仅与授权人员共享它的方法。 例如,我知道我可以显示一个链接以在私人页面上添加机器人,但我认为任何人都可以共享此链接并将机器人添加到他的 Skype 帐户。

有人已经这样做了吗?有什么想法吗?

谢谢

【问题讨论】:

    标签: node.js skype botframework


    【解决方案1】:

    您可以尝试创建一个包含允许人员的数据库,并将回复限制为仅限此人。 您需要使用session.agent 变量来查看用户名,以确定该用户是否在您允许的人员列表中。 因此,任何人都可以看到您的机器人,但它只会与您想要的人聊天。

    【讨论】:

    • 同意。如果您有经过身份验证的服务,您还可以遵循身份验证模式(向用户传递一个蓝色链接,他们单击并登录,然后您将该访问令牌映射到他们的 channelAccount)。
    • 这就是我想做的,但我不知道如何为 Skype 用户获取唯一 ID 以便将其存储在我的用户表中。我将尝试使用“session.agent”。 THX
    【解决方案2】:

    我试图获取 session.agent var -> undefined。 这是我的会话转储:

     { domain: 
           { domain: null,
             _events: { error: [Function: onError] },
            _maxListeners: undefined,
         members: [ [Object], [Object] ] },
      _events: { error: [Function] },
      _maxListeners: undefined,
      options: 
       { localizer: undefined,
         autoBatchDelay: 250,
         library: { name: '*', dialogs: [Object], libraries: [Object] },
         actions: { actions: {} },
         middleware: [],
         dialogId: '/',
         dialogArgs: undefined,
         dialogErrorMessage: undefined,
         onSave: [Function],
         onSend: [Function] },
      msgSent: true,
      _isReset: false,
      lastSendTime: 1474355048875,
      batch: 
       [ { type: 'message',
           agent: 'botbuilder',
           source: 'skype',
           address: [Object],
           text: ' help lastMsg lastUser' } ],
      batchStarted: true,
      sendingBatch: false,
      inMiddleware: false,
      library: 
       { name: '*',
         dialogs: { '/': [Object] },
         libraries: { BotBuilder: [Object] } },
      userData: {},
      conversationData: {},
      privateConversationData: {},
      sessionState: 
       { callstack: [ [Object] ],
         lastAccess: 1474355048876,
         version: 0 },
      dialogData: 
       { 'BotBuilder.Data.Intent': '/^help/i',
         'BotBuilder.Data.WaterfallStep': 0 },
      message: 
       { type: 'message',
         timestamp: '2016-09-20T07:04:03.723Z',
         text: 'help',
         entities: [],
         attachments: [],
         address: 
          { id: '2jdYO5OjjEja1zH6',
            channelId: 'skype',
            user: [Object],
            conversation: [Object],
            bot: [Object],
            serviceUrl: 'https://skype.botframework.com',
            useAuth: true },
         source: 'skype',
         agent: 'botbuilder',
         user: 
          { id: '29:1MPrjjbaPcCccdu9BMdA154jiuHUIH4nR7EK9_0p64iEUg',
            name: 'Séverin' } },
      batchTimer: 
       { _idleTimeout: 250,
         _idlePrev: 
          { '0': [Function: listOnTimeout],
            _idleNext: [Circular],
            _idlePrev: [Circular],
            msecs: 250 },
         _idleNext: 
          { '0': [Function: listOnTimeout],
            _idleNext: [Circular],
            _idlePrev: [Circular],
            msecs: 250 },
         _idleStart: 364730333,
         _onTimeout: [Function],
         _repeat: false,
         domain: 
          { domain: null,
            _events: [Object],
            _maxListeners: undefined,
            members: [Object] } } }
    

    如何从 Skype 获取唯一标识符,以便将其与我数据库中的用户匹配?理想情况下,我想在我的用户表中添加一个字段“skypeId”。

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-07
      • 2018-05-02
      • 2014-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多