首页 > 解决方案 > 电子邮件技能:Microsoft.Graph.ServiceException

问题描述

什么项目受到影响?

电子邮件技巧

这是什么语言?

C#、.NET

怎么了?

当我发出“向某人发送电子邮件”之类的命令或与电子邮件技能相关的任何命令时,电子邮件技能会引发Microsoft.Graph.ServiceException 。

当我在电子邮件技能中使用父机器人 (VA) 凭据和 OAUTH 连接时,会出现问题。但是,如果我不使用 Parent Bot 凭据和 oauth 连接,电子邮件技能可以正常工作。

重现此问题的步骤是什么?
  1. 使用 botskill connect 命令将电子邮件技能附加到父机器人 (VA)。
  2. 启用 SSO 登录并添加父机器人 (VA) oauth 凭据和连接信息。
  3. 确保为具有所需 API 权限的电子邮件技能创建应用程序注册。
{
  "allowedCallers": [
    "*"
  ],
  "oauthConnections": [
    {
      "name": "Parent Bot Assistant",
      "provider": "Azure Active Directory v2"
    }
  ],
  "oauthCredentials": {
    "microsoftAppId": "f425a0bb-0f99-XXXXXXXX",
    "microsoftAppPassword": "XXXXXXX"
  },
  "defaultValue": {
    "sendEmail": [
      {
        "name": "EmailSubject",
        "isSkipByDefault": false
      },
      {
        "name": "EmailMessage",
        "isSkipByDefault": false
      }
    ]
  },
  "googleAppName": "",
  "googleClientId": "",
  "googleClientSecret": "",
  "googleScopes": "https://mail.google.com/, https://www.googleapis.com/auth/contacts",
  "displaySize": 3,
  "azureMapsKey": "",
  "microsoftAppId": "c75bdb9e-ae11-XXXXXXXXXXX",
  "microsoftAppPassword": "XXXXXXXXX",
  "resourceGroupName": "EmailBot",
  "botWebAppName": "EmailBot-xxxxx",
  "applicationInsights": {
    "InstrumentationKey": "XXXX"
  },
  "cosmosDb": {
    "authKey": "XXXXXXX==",
    "containerId": "EmailBot-state",
    "cosmosDBEndpoint": "https://emailbotxxxxxx.documents.azure.com:443/",
    "databaseId": "botstate-db"
  },
  "luis": {
    "accountName": "EmailBot-luisruntime-xxxxxx",
    "authoringKey": "XXXXXXXX",
    "authoringRegion": "westus",
    "endpoint": "https://emailbot-luisauthoring-xxxxxx.cognitiveservices.azure.com/",
    "key": "XXXXXXXXXX",
    "region": "westus"
  },
  "blobStorage": {
    "connectionString": "DefaultEndpointsProtocol=https;AccountName=emailbotxxxxxx;AccountKey=XXXXXXXX==;EndpointSuffix=core.windows.net",
    "container": "transcripts"
  }
}
你期待会发生什么?

我期待电子邮件技能的行为/工作方式与没有父机器人 (VA) oauth 凭据和连接的情况相同。

你能分享任何日志、错误输出等吗?

信息:

Code: ErrorAccessDenied
Message: Access is denied. Check credentials and try again.

Inner error
 Code: ErrorAccessDenied
Message: Access is denied. Check credentials and try again.

Inner error

失败的方法: EmailSkill.Services.MSGraphAPI.MSGraphUserService+d__11.MoveNext

Microsoft.Bot.Solutions.Skills.SkillException:在 EmailSkill.Services.MSGraphAPI.MSGraphUserService+d__11.MoveNext(EmailSkill,版本=1.0.0.0,文化=中性,PublicKeyToken=XXXXXXXXXXXXXX=nullEmailSkill,版本=1.0.0.0,文化=中性, PublicKeyToken=XXXXXXXXXXXXXX=null: C:\Users\NANA​​I\source\repos\MailSkill\botframework-skills\skills\csharp\emailskill\Services\MSGraphAPI\MSGraphUserService.csEmailSkill, 版本=1.0.0.0, Culture=neutral, PublicKeyToken= XXXXXXXXXXXXXXX=null: 223) 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e) 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess ( System.Private.CoreLib,版本=4.0.0.0,文化=中性,PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e) 在 System.Runtime。CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXXX=7cec85d7bea7798e) 在 EmailSkill.Services.MSGraphAPI.MSGraphUserService+d__3.MoveNext (EmailSkill, Version=1.0.0.0, Culture =中性,PublicKeyToken=XXXXXXXXXXXXXX=nullEmailSkill,版本=1.0.0.0,文化=中性,PublicKeyToken=XXXXXXXXXXXXXXX=null:C:\Users\NANA​​I\source\repos\MailSkill\botframework-skills\skills\csharp\emailskill\Services\ MSGraphAPI\MSGraphUserService.csEmailSkill, Version=1.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXXX=null: 42) 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral , PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e) 在 System.Runtime.CompilerServices.TaskAwaiter。ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXXX=7cec85d7bea7798e) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral , PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e) 在 System.Runtime.CompilerServices.TaskAwaiter1.GetResult (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e) at EmailSkill.Dialogs.FindContactDialog+<GetPeopleWorkWithAsync>d__38.MoveNext (EmailSkill, Version=1.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=nullEmailSkill, Version=1.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=null: C:\Users\NANAI\source\repos\MailSkill\botframework-skills\skills\csharp\emailskill\Dialogs\FindContactDialog.csEmailSkill, Version=1.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=null: 882) at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e) at EmailSkill.Dialogs.FindContactDialog+<GetUserFromUserNameAsync>d__29.MoveNext (EmailSkill, Version=1.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=nullEmailSkill, Version=1.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=null: C:\Users\NANAI\source\repos\MailSkill\botframework-skills\skills\csharp\emailskill\Dialogs\FindContactDialog.csEmailSkill, Version=1.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=null: 474) Inner exception Microsoft.Graph.ServiceException handled at EmailSkill.Services.MSGraphAPI.MSGraphUserService+<GetMSPeopleAsync>d__11.MoveNext: at Microsoft.Graph.HttpProvider+<SendAsync>d__18.MoveNext (Microsoft.Graph.Core, Version=1.15.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=31bf3856ad364e35) at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable1+ConfiguredTaskAwaiter.GetResult (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXXX=7cec85d7bea7798e) 在 Microsoft.Graph.BaseRequest+d__35.MoveNext (Microsoft.Graph.Core, Version=1.15.0.0 , Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=31bf3856ad364e35) 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e) 在 System.Runtime.CompilerServices System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0,文化=中性,PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e) 在 System.Runtime。CompilerServices.ConfiguredTaskAwaitable1+ConfiguredTaskAwaiter.GetResult (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e) at Microsoft.Graph.BaseRequest+<SendAsync>d__311.MoveNext (Microsoft.Graph.Core, Version=1.15.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=31bf3856ad364e35) 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture = 中性,PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e) 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Private.CoreLib,版本=4.0.0.0,文化=中性,PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e)在 System.Runtime.CompilerServices.TaskAwaiter .HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXXX=7cec85d7bea7798e) 在 System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter.GetResult (System.Private.CoreLib, Version=4.0. 0.0,文化=中性,PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e)在 Microsoft.Graph.UserPeopleCollectionRequest+d__4.MoveNext(Microsoft.Graph,版本=1.15.0.0,文化=中性,PublicKeyToken=XXXXXXXXXXXXXX=31bf3856ad364e35)在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(系统。 Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e) 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX =7cec85d7bea7798e) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, 版本=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX=7cec85d7bea7798e) 在 EmailSkill.Services.MSGraphAPI.MSGraphUserService+d__11.MoveNext (EmailSkillSkill , 版本=1.0.0.0,Culture=neutral,PublicKeyToken=XXXXXXXXXXXXXX=nullEmailSkill,版本=1.0.0.0,Culture=neutral,PublicKeyToken=XXXXXXXXXXXXXXX=null:C:\Users\NANA​​I\source\repos\MailSkill\botframework-skills\skills\csharp\emailskill\Services \MSGraphAPI\MSGraphUserService.csEmailSkill,版本=1.0.0.0,文化=中性,PublicKeyToken=XXXXXXXXXXXXXXX=null:219)

任何屏幕截图或其他上下文?

毫秒图

父机器人 API 权限 在此处输入图像描述

电子邮件机器人 API 权限 在此处输入图像描述

如果有人可以帮助我确定问题,我将不胜感激。我也向 MS 报告了这个问题,但他们把它放在了积压中。

标签: botframeworkmicrosoft-graph-api

解决方案


推荐阅读