【问题标题】:get Locale from API.ai request从 API.ai 请求中获取语言环境
【发布时间】:2018-02-23 06:21:20
【问题描述】:

我正在使用带有 API.ai 的 actions-on-google ApiAiAssistant node.js 库来设计我的聊天机器人。

我专门为它创建了一个德国 API.ai 代理。因此,我需要从请求中获取区域设置值到 webhook 以了解请求来自哪个区域设置。

我看到了一种类似 ApiAiAssistant.getLocale 的方法来从请求中获取语言环境信息,但我无法从文档中找到特定的方法。

该方法是否已弃用?以及如何从 API.ai webhook 请求中获取语言环境信息?

【问题讨论】:

    标签: dialogflow-es actions-on-google


    【解决方案1】:

    您可能正在寻找getUserLocale() 方法。 https://developers.google.com/actions/reference/nodejs/AssistantApp#getUserLocale

    例如:

    const app = new ApiAiApp({request, response});
    const locale = app.getUserLocale();
    

    它返回语言/区域设置组合(例如“en-AU”)。

    如果您只使用 JSON 对象而不是 API,您可以在 originalRequest.data.user.locale 找到值。这与方法返回的值相同。

    如果您只需要 API.AI 返回的非标准语言字段,您可以使用 lang 字段。这不能通过 API 获得,只需直接读取 JSON,并且只包含语言信息 - 而不是区域信息。另一方面,如果您将 lang 用于多个平台,而不仅仅是 Actions on Google,则可以使用它。 (但如果您将它用于其他平台 - 您可能不想使用 actions-on-google node.js 库。)

    【讨论】:

    • 请求 json 由名为 lang 的标签组成。 originalRequest.data.user.locale 是否返回该值?
    • {"id":"0f6c7194-8520-4cae-8949-dd26310ab8b1","timestamp":"2017-09-14T11:49:08.619Z","lang":"de"
    • 不,区域设置是不同的值。答案已更新以澄清。
    • 而且,如前所述,“lang”仅包含语言信息 - 您专门询问了语言环境信息,这是一个略有不同的生物。
    • 你没有提到你在使用其他平台。答案已更新。 (在其他平台上使用 actions-on-google 库可能不是一个明智的主意,因为您会得到不合标准的响应。)
    猜你喜欢
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 2022-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多