从 API.ai 请求获取语言环境

get Locale from API.ai request

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

我专门为它创建了一个德语 API.ai 代理。因此,我需要从对 webhook 的请求中获取语言环境值,以了解请求来自哪个语言环境。

我见过类似 ApiAiAssistant.getLocale 的方法来从请求中获取语言环境信息,但我无法从文档中找到具体的方法。

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

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

例如:

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

就是returns的language/locale组合(比如"en-AU")。

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

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