首页 > 解决方案 > 仅当用户来自 Google 审核团队时接收错误的 Contextname(使我的应用程序崩溃)

问题描述

我创建了一个当前正在审核中以供批准的操作,但存在一个问题(下面会更好地描述),仅当用户是 Google 审核团队的成员时才会显示。我的 5 位来自不同国家(印度、德国、瑞士、意大利)的同事/朋友从 android 谷歌助手和动作控制台模拟器测试了该应用程序,但从未出现过问题。该应用程序完美无缺。

我希望有人能解释为什么会发生这种情况并提出解决方案。我在这个应用程序上努力工作,在这个问题没有解决之前,我无法发布它并拥有真正的用户。

关于问题的技术细节:基本上,从 Google 团队测试人员收到的 Context 名称正在使 Google Cloud api Parser 崩溃。我在我的网络挂钩中使用 C# 与 Google.Cloud.Dialogflow.V2 1.0.0-beta02。

来自 google 操作团队的测试人员使用应用程序 projects/blitzy-84d12/agent/environments/__aog-2/users/-/sessions/ABwppHEMNPVl9O-OVXEOzT_ch6uSa_cZ08pHV6YUF5kpkSwZHDVmk6ShexlLi50yWFMkktYClMDX01z9/contexts/sendmessageprocessing 时收到的上下文名称示例

当我或我的朋友测试应用程序(使用 Android 手机或操作控制台模拟器)时收到的上下文名称示例 projects/voice-rider/agent/sessions/ABwppHFyb9HLDSmiETz6d91QveUw0kTIjC5T1kJmNF2QVKrRBrHtTvR3t83lhU9hVxORZ8rXBbQBtRQ/contexts/tellmemypositionprocessing

使用 Google.Cloud.Dialogflow.V2.ContextName.Parse(String contextName) errMsg=Name does not match template 解析上下文名称时产生错误:段数不正确

错误的源代码可以在这个 github 源代码的第 272 行看到: https ://github.com/googleapis/gax-dotnet/blob/master/Google.Api.Gax/PathTemplate.cs

很容易理解为什么谷歌云 api Parser 会抛出异常,它接收到的上下文名称比预期的要多。段是指由斜杠“/”字符分隔的字符串数。使用 google team tester 显示我的测试的上下文名称,我们可以看到不同之处:

项目/blitzy-84d12/agent/environments/__aog-2/users/-/sessions/ABwppHEMNPVl9O-OVXEOzT_ch6uSa_cZ08pHV6YUF5kpkSwZHDVmk6ShexlLi50yWFMkktYClMDX01z9/contexts/sendmessageprocessing

项目/语音骑手/代理/会话/ABwppHFyb9HLDSmiETz6d91QveUw0kTIjC5T1kJmNF2QVKrRBrHtTvR3t83lhU9hVxORZ8rXBbQBtRQ/contexts/tellmemypositionprocessing

在 google team tester contextname 中有这个附加块:environments/__aog-2/users/-/

由 4 个额外的“外星人”段组成,这些段会使 Google api 解析器崩溃

我可以尝试用我自己的解析器覆盖 Google api 解析器,但实际上我不想进入那条路径,因为它可能会产生负面影响和未来的兼容性。

谢谢您的支持

标签: dialogflow-es

解决方案


推荐阅读