Flutter: Dialogflow SDK возвращает пробный вызов: [] ("queryText") ошибка - PullRequest
3 голосов
/ 30 января 2020

Я пытаюсь использовать пакет 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)),
       ),
    );
  }
}

Обратите внимание:

  1. Я включил веб-API опция в Dialogflow Integrations
  2. Я скачал файл JSON и добавил его в каталог и ресурсы в pubspe c .yaml file
  3. Я проверил путь к файлу много раз (без проблем)
  4. Моя консоль Google Cloud НЕ проверена на платеж (я не думаю, что это должно вызывать беспокойство)
  5. Я НЕ ПОДТВЕРЖДАЛ ЭКРАН СОГЛАСИЯ ОСТАЛЬНОГО СОГЛАСИЯ, поскольку я не знаю, что добавить в URL для мобильного приложения

Вот журнал ошибок -

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

Я считаю, что проблема заключается в AIResponse response = await dialogflow.detectIntent("hi"); строке кода, но не могу узнать почему и как. Может быть, я пропускаю некоторые шаги. Спасибо Youuu!

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Я обнаружил, что не сохранил Данные учетной записи службы в https://console.cloud.google.com/iam-admin/serviceaccounts с созданным ключом JSON.

Дважды проверьте, если ваш В учетной записи сохранен ключ.

0 голосов
/ 20 марта 2020

Я только что наткнулся на ту же проблему, и в моем конкретном случае это произошло потому, что я забыл включить API внутри https://console.developers.google.com/apis/dashboard для проекта после создания новой учетной записи службы.

Скорее всего, вы настроили бы учетную запись службы по адресу: https://console.developers.google.com/iam-admin/serviceaccounts

Затем вам нужно будет go до: https://console.developers.google.com/apis/library для этого же проекта включить DialogFlow.

Возможно, это не ваша проблема, но ее тоже стоит проверить.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...