Flutter:Dialogflow SDK 返回尝试调用:[]("queryText") 错误

Abb*_*bas 6 flutter dialogflow-es

我正在尝试将该flutter_dialogflow包与 Dialogflow v2一起使用。在我看来,我已经采取了所有必要的步骤。我需要帮助才能知道我是否错过了什么。

我的代码 -

import 'package:flutter/material.dart';
import 'package:flutter_dialogflow/dialogflow_v2.dart';

class Home extends StatefulWidget {
  Home({Key key}) : super(key: key);

  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {

  String sampleQuery = "travel destinations in india";

  void _sendQuery() async {
    try {
    AuthGoogle _authGoogle = await AuthGoogle(fileJson: "assets/dependencies/dialogflow.json").build();
    Dialogflow dialogflow = Dialogflow(authGoogle: _authGoogle, language: Language.english);
    AIResponse response = await dialogflow.detectIntent("hi");
    print(response.getMessage());


    } catch(e) {
      print('------------------------------${e.toString()}');
    }

  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
       appBar: AppBar(
         title: Text('Ask Now'),
       ),
       body: RaisedButton(
         onPressed: _sendQuery,
         color: Colors.black87,
         child: Text('Send Query', style: TextStyle(color: Colors.white)),
       ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

请注意:

  1. 我在 Dialogflow 集成中启用了 Web API 选项
  2. 我已经下载了 JSON 文件并将其添加到 pubspec.yaml 文件中的目录和资产中
  3. 我已经多次检查文件路径(没有问题)
  4. 我的 Google Cloud Console 未经过付款验证(我认为这不应该是问题)
  5. 我没有验证 OAUTH 同意屏幕,因为我不知道在移动应用程序的 URL 中输入什么内容

这是错误日志 -

I/flutter (18856): ------------------------------NoSuchMethodError: The method '[]' was called on null.
I/flutter (18856): Receiver: null
I/flutter (18856): Tried calling: []("queryText")
Run Code Online (Sandbox Code Playgroud)

我相信问题出在AIResponse response = await dialogflow.detectIntent("hi");代码行上,但无法找出原因和方式。也许我错过了一些步骤。谢谢你!

小智 0

我刚刚偶然发现了同样的问题,在我的特殊情况下,这是因为我忘记在创建新的服务帐户后为该项目启用https://console.developers.google.com/apis/dashboard内的 API 。

您很可能在以下位置设置一个服务帐户: https: //console.developers.google.com/iam-admin/serviceaccounts

然后,您需要访问: https: //console.developers.google.com/apis/library 为同一项目启用 DialogFlow。

这可能不是您的问题,但也值得检查。

谢谢