Google Assistant Dialogflow API V2 webhook ETag 错误

2024-03-05

我正在尝试返回简单的文本响应并使用以下代码在 Google Assistant 应用程序中显示基本卡片:

public GoogleCloudDialogflowV2WebhookResponse Search(GoogleCloudDialogflowV2WebhookRequest request)
    {
        GoogleCloudDialogflowV2WebhookResponse whr = new GoogleCloudDialogflowV2WebhookResponse();

        whr.FulfillmentMessages = new List<GoogleCloudDialogflowV2IntentMessage>();

        whr.FulfillmentMessages.Add(new GoogleCloudDialogflowV2IntentMessage()
        {                
            Platform = "ACTIONS_ON_GOOGLE",
            SimpleResponses = new GoogleCloudDialogflowV2IntentMessageSimpleResponses()
            {
               SimpleResponses = new List<GoogleCloudDialogflowV2IntentMessageSimpleResponse>()
               {
                   new GoogleCloudDialogflowV2IntentMessageSimpleResponse()
                   {
                       DisplayText = "sample text",
                       Ssml = "<speak>sample text</speak>"
                   }
               }
            },
            BasicCard = new GoogleCloudDialogflowV2IntentMessageBasicCard()
            {             
                Title = "sample title",
                Subtitle = "sample subtitle",
                FormattedText = "sample formatted text",
                Image = new GoogleCloudDialogflowV2IntentMessageImage()
                {                 
                    ImageUri = "https://assistant.google.com/static/images/molecule/Molecule-Formation-stop.png",
                    AccessibilityText = "sample image"
                }
            }
        });

        return whr;
    }

从 Google Dialogflow 界面调用 Webhook 端点时出现以下错误:

webhookStatus": {
"code": 3,
"message": "Webhook call failed. Error: Failed to parse webhook JSON response: Cannot find field: ETag in message google.cloud.dialogflow.v2beta1.Intent.Message.Image." }

我找不到有关 ETag 问题的任何信息。我正在使用标准 Google.Apis.Dialogflow.v2 NuGet 包和 V2 API Dialogflow 代理。

如果我不使用 GoogleCloudDialogflowV2WebhookResponse 并使用自定义类,那么当序列化为 JSON 时,无需基本卡即可正常工作。

{ "fulfillmentText": "test from API", "fulfillmentMessages": [ { "platform": "ACTIONS_ON_GOOGLE", "simpleResponses": { "simpleResponses": [ { "displayText": "test", "ssml": "<speak>test</speak>"}],}}],}

我更喜欢使用 GoogleCloudDialogflowV2WebhookResponse。


根据https://github.com/google/google-api-dotnet-client/issues/1234 https://github.com/google/google-api-dotnet-client/issues/1234, use https://www.nuget.org/packages/Google.Cloud.Dialogflow.V2/1.0.0-beta01 https://www.nuget.org/packages/Google.Cloud.Dialogflow.V2/1.0.0-beta01代替https://www.nuget.org/packages/Google.Apis.Dialogflow.v2/ https://www.nuget.org/packages/Google.Apis.Dialogflow.v2/.

请注意,Gooogle.Cloud 包仍然是预发布版本,因此您必须在安装时指定版本,或者如果您在 Visual Studio 中使用 NuGet 包管理器 UI,请单击小“包含预发布”复选框。

我自己还没有尝试过,所以你的里程可能会有所不同。一旦我尝试过,我就会更新。

Update:Google.Cloud 库确实按预期工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Assistant Dialogflow API V2 webhook ETag 错误 的相关文章

  • EF Core Group By 翻译支持条件总和

    听说 EF Core 2 1 将支持翻译小组 我感到非常兴奋 我下载了预览版并开始测试它 但发现我在很多地方仍然没有得到翻译分组 在下面的代码片段中 对 TotalFlagCases 的查询将阻止翻译分组工作 无论如何 我可以重写这个以便我
  • 如何使用 C# 中的参数将用户重定向到 paypal

    如果我有像下面这样的简单表格 我可以用它来将用户重定向到 PayPal 以完成付款
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co

随机推荐