MS Teams 机器人登录问题:身份验证成功但“无法访问应用程序”错误

问题描述 投票:0回答:1

我正在开发 Microsoft Teams 机器人并遇到问题。即使登录成功,我仍然看到错误消息“无法访问应用程序。请重试。”

当我使用 Node.js 和 Microsoft Bot Framework 来显示 OAuthPrompt 时,可以正确显示身份验证登录。登录过程确实成功并返回正确的令牌。但是,登录卡本身会显示一条错误消息,指出“无法访问应用程序。请重试。”

采取的配置步骤:

  1. 我设置了应用程序注册。
  2. 在 Azure AD 的管理部分中,我配置了以下内容:
  • 认证
  • 证书与秘密
  • API权限
  1. 我还配置了 Azure 机器人,特别是 OAuth 连接设置。测试连接成功并返回token。
  2. 然后,我使用开发人员门户在 Microsoft Teams 应用程序中创建了一个应用程序。我添加了基本配置、应用程序功能(机器人)、单点登录和域部分。

问题: 发布和测试后,登录机器人将按预期显示。但是,当我单击它时,遇到“无法访问应用程序”错误。此问题是 Teams 应用程序独有的。使用机器人模拟器和 Azure 机器人进行测试(在网络聊天中测试)时,一切正常。此外,当我在浏览器中尝试 Teams 应用程序并检查网络选项卡时,它引发了 502 bad gateway 错误。

有人遇到过类似的问题或者可以提供解决此问题的见解吗?任何指导将不胜感激。

azure-active-directory botframework microsoft-teams chatbot microsoft-graph-teams
1个回答
0
投票

此问题是由于如果机器人未完成操作,可能会发生 10 或 15 秒超时。这记录在 Azure 服务机器人文档中:

如果机器人在10到15秒内没有完成操作, 根据通道的不同,Azure Bot 服务将超时并且 向客户端报告 504:GatewayTimeout,如如何操作中所述 机器人工作。

如果这是由于延迟造成的,您需要确保您的应用程序可以处理长时间运行的操作

机器人构建器框架的某些版本还存在一个已知问题,可能会导致正文设置为空。在此相关线程中,提供了一种解决方法,通过防止将 None 设置为 null 来防止设置 body=null。

# Listen for incoming requests on /api/messages  
async def messages(req: Request) -> Response:  
    # Main bot message handler.  
    if "application/json" in req.headers["Content-Type"]:  
        body = await req.json()  
    else:  
        return Response(status=415)  
  
    activity = Activity().deserialize(body)  
    auth_header = req.headers["Authorization"] if "Authorization" in req.headers else ""  
  
    response = await ADAPTER.process_activity(activity, auth_header, BOT.on_turn)  
    if response:  
        # prevent sending None body as 'null'  
        if response.body is None:  
            args = {'status': response.status}  
        else:  
            args = {'data': response.body, 'status': response.status}  
  
        return json_response(**args)  
    return Response(status=201)  

相关问题: https://techcommunity.microsoft.com/t5/teams-developer/getting-quot-unable-to-reach-app-please-try-again-quot-while/m-p/1584462

MS Teams 聊天机器人 - 无法访问应用程序。请再试一次

https://learn.microsoft.com/en-us/answers/questions/925300/unable-to-reach-app-error-with-successful-login-fo?page=2#answers

MS Teams 聊天机器人 - 无法访问应用程序。请再试一次

© www.soinside.com 2019 - 2024. All rights reserved.