Javascript 如何将用户名从React本机应用发送到Dialogflow,以便bot在响应中使用

Javascript 如何将用户名从React本机应用发送到Dialogflow,以便bot在响应中使用,javascript,reactjs,react-native,dialogflow-es,Javascript,Reactjs,React Native,Dialogflow Es,我正在使用react native和dialogflow构建聊天机器人应用程序。我有一般聊天机器人工作(代码如下)。我的下一步是,我想将用户名(使用react native)存储在他们的设备上(我知道如何做),并将此名称发送到dialogflow,以便bot可以使用用户名进行响应(不知道如何执行最后一步)。我已经做了很多关于如何实现这一点的研究,也许我对dialogflow太陌生了,但我没有弄清楚如何实现这一点。根据我收集的信息,我相信我需要从react.js文件中设置一个实体,然后可以在dia

我正在使用react native和dialogflow构建聊天机器人应用程序。我有一般聊天机器人工作(代码如下)。我的下一步是,我想将用户名(使用react native)存储在他们的设备上(我知道如何做),并将此名称发送到dialogflow,以便bot可以使用用户名进行响应(不知道如何执行最后一步)。我已经做了很多关于如何实现这一点的研究,也许我对dialogflow太陌生了,但我没有弄清楚如何实现这一点。根据我收集的信息,我相信我需要从react.js文件中设置一个实体,然后可以在dialogflow中作为参数访问该实体。我看到react本机模块dialogflow有一个setEntity方法,但对于dialogflow_V2,它已从/setEntity移到sessions.setEntityType。我完全搞不清楚如何在dialogflow_V2中实现这一点(以及“/”与“会话”有何不同)。我注意到,当我发送查询请求时,返回了一个具有会话密钥的java对象。我是否需要以某种方式使用此会话键来使用setEntityType,如果需要,这是否不仅适用于特定查询?如有任何澄清或指导,将不胜感激。多谢各位

my chatbot的主屏幕如下代码所示(注意,它使用了新的功能组件样式,不像使用类那样常见)。要运行此操作,必须使用react navigation将此屏幕连接到app.js文件,并创建一个可从dialogflow访问的env.js文件(敏感信息)。有关如何使用类执行此操作的详细教程,请参见以下链接:

import React,{useState,useffect}来自“React”;
从“react native”导入{样式表、文本、视图、图像};
从“react native gifted chat”导入{GiftedChat};
从“react native Dialogflow text”导入{Dialogflow_V2}//使用expo的正确模块
从“/env”导入{dialogflowconfig};
const TalkScreen=道具=>{
const BOT_用户={
_id:2,
名称:“常见问题解答机器人”,
阿凡达:'https://i.imgur.com/7k12EPD.png'
}
const[messages,setMessages]=useState(
[
{
_id:1,

text:`Hi!我是FAQ机器人实体可能不是您想要的。这些类型用于确定匹配意图中参数的可能值

相反,您可以传递fulfillment webhook可能用作

因此,您的代码可能看起来像


文档中还谈到了“永久上下文”,但不清楚需要在何处进行设置。

实体可能不是您想要的。这些类型用于确定匹配意图中参数的可能值

相反,您可以传递fulfillment webhook可能用作

因此,您的代码可能看起来像


文件还谈到了“永久性环境”,但不清楚需要在何处进行设置。

这非常有用,我现在使用您提供的解决方案,在我的react native应用程序中使用dialogflow的用户名功能。请注意,其他可能要使用此解决方案的人。要在响应给定意图时访问此参数,请使用#userinfo.name。非常感谢您!太棒了!这非常有帮助,我现在使用您提供的解决方案,在我的react native应用程序中使用dialogflow的用户名功能。请注意,任何其他可能想要使用此解决方案的人。要在响应给定意图时访问此参数,请使用#userinfo.name。非常感谢囚犯!你真厉害!
import React, { useState, useEffect } from 'react';
import { StyleSheet, Text, View, Image } from 'react-native';
import { GiftedChat } from 'react-native-gifted-chat';
import { Dialogflow_V2 } from 'react-native-dialogflow-text'; //correct module for using expo
import {dialogflowconfig} from './env';

const TalkScreen = props => {
  const BOT_USER = {
    _id: 2,
    name: 'FAQ Bot',
    avatar: 'https://i.imgur.com/7k12EPD.png'
  }

  const [messages, setMessages] = useState(
    [
      {
        _id: 1,
        text: `Hi! I am the FAQ bot Entities are probably not what you want. These are types that are used to determine possible values for parameters in matched Intents.

Instead, you can pass additional values that the fulfillment webhook might use as a Context parameter.

So your code might look something like

const contexts = [{
  name: "userinfo",
  lifespan: 1,
  parameters: {
      "name": username
  }
}];
Dialogflow_V2.setContexts(contexts);

Dialogflow_V2.requestQuery(
  mesg,
  result => handleGoogleResponse(result,message),
  error => console.log(error)
)