【问题标题】:Get current User in MS Teams for Bots获取 MS Teams for Bots 中的当前用户
【发布时间】:2021-06-16 14:33:32
【问题描述】:

我有一个关于 ms 团队、机器人和获取当前用户值(如电子邮件或广告 ID)的一般性问题。

背景是一个集成在团队中的机器人。他用于一般工作并将一些json信息发送到机器人(不是基于ms bots框架)。我可以在我的机器人中看到这一点。我看到的是我的名字,一些加密的 id 和其他一些对我来说或多或少毫无意义的值。我首先使用的是 ms 团队工具包,但我看不到将其他值集成到初始机器人聊天的直接方法。

我看不到我的电子邮件地址或广告 ID。我希望在机器人内部拥有哪一个作为价值,而无需向用户发送电子邮件。

我从 ms 阅读了有关消息传递的文档,但它们不是很有帮助。

我的问题:如何将当前团队会话中的其他值(例如电子邮件设备名称)集成到初始机器人聊天中?

【问题讨论】:

    标签: email active-directory bots microsoft-teams toolkit


    【解决方案1】:

    您没有提到您使用的是什么语言,但鉴于您使用的是 Teams Toolkit,我假设 Node。在您的机器人中,在各种事件处理程序中,有一个 context 对象。在那个对象上,你可以访问 context.activity.from 里面有东西(例如):

        "from": {
            "id": "29:[some long id]",
            "name": "[user's name]",
            "aadObjectId": "[this is the user's Azure Ad Object Id]"
        },
    

    所以aadObjectId 应该与您要查找的“AD ID”相匹配。要获取用户的电子邮件,您需要再次拨打电话,如here

    【讨论】:

    • 重点是,我对这个项目和 MS 世界完全陌生。所以我不知道,那是在后台发生的。除此之外,我与团队集成的机器人在 MS 世界之外有一个端点。我有一个 Cognigy 机器人 (JS) 作为端点,在这里我得到了 Cognigy 机器人输入中的 JSON 值。所以,我需要的是在第一个机器人调用中添加广告信息的选项。按照您的链接,获取名册或用户配置文件/JSON,在哪里添加这个?如何使用 aad-id 使其可变?
    • 嗨@Volker,请您参考这个sample。它会帮助你。
    • @Sridevi-MSFT 关键是,在查看 JS 部分内部之后,传入消息的消息处理位置不正确。我需要(并搜索)团队向我的外部机器人发送消息的地方。在这里,我需要添加广告数据以将它们发送到我的 Cognigy 机器人。使用 MS 工具包工作(单击),我看不到执行此操作的直接方法,并且在由 Tooklit 生成的 JS 脚本中,我看不到初始发送发生的部分。
    • @Volker,您是想将广告 ID 作为初始呼叫发送给机器人,还是从机器人接收广告 ID 作为第一响应。
    • 要从机器人发送 AD 数据作为第一响应,请在 OnTeamsMembersAddedAsync 方法中添加 TeamsInfo.GetMemberAsync()。检查这个doc
    【解决方案2】:

    我在 index.js 脚本中至少尝试过类似的操作,但它不起作用...

    // Create bot handlers
    const botActivityHandler = new BotActivityHandler();
    
    // Versuch dem Bot AD zu senden.
    function getSingleMember(context) {
    try {
        const member = await TeamsInfo.getMember(context, context.activity.from.id);
    
        context.activity.error = 'noError';
        context.activity.mail  = 'myMailAddr';
        context.activity.adid  = 'myADID';
    } catch (e) {
        context.activity.error = e.code;
    }
    return member;
    }
    const currMember = getSingleMember(context);
    
    // Create HTTP server.
    

    【讨论】:

      猜你喜欢
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 2022-09-27
      • 1970-01-01
      • 2019-12-19
      • 2016-10-18
      • 2021-10-14
      相关资源
      最近更新 更多