Невозможно настроить API dialogFlow - PullRequest
0 голосов
/ 05 марта 2020

Я пытаюсь использовать это краткое руководство по настройке API dialogFlow в моем проекте laravel - https://cloud.google.com/dialogflow/docs/quick/api.

Это метод, который я создал для определения намерений, и др c.

function detect_intent_texts($projectId, $texts, $sessionId, $languageCode = 'en-US'){
        // new session
        $filePath = base_path('dialogflow.json');

        putenv("GOOGLE_APPLICATION_CREDENTIALS=".$filePath);

        $sessionsClient = new SessionsClient();

        $session = $sessionsClient->sessionName($projectId, $sessionId ?: uniqid());
        printf('Session path: %s' . PHP_EOL, $session);

        // query for each string in array
        foreach ($texts as $text) {
            // create text input
            $textInput = new TextInput();
            $textInput->setText($text);
            $textInput->setLanguageCode($languageCode);

            // create query input
            $queryInput = new QueryInput();
            $queryInput->setText($textInput);

            // get response and relevant info
            //dd($queryInput);
            $response = $sessionsClient->detectIntent($session, $queryInput);
            $queryResult = $response->getQueryResult();
            $queryText = $queryResult->getQueryText();
            $intent = $queryResult->getIntent();
            $displayName = $intent->getDisplayName();
            $confidence = $queryResult->getIntentDetectionConfidence();
            $fulfilmentText = $queryResult->getFulfillmentText();

            // output relevant info
            print(str_repeat("=", 20) . PHP_EOL);
            printf('Query text: %s' . PHP_EOL, $queryText);
            printf('Detected intent: %s (confidence: %f)' . PHP_EOL, $displayName,
                $confidence);
            print(PHP_EOL);
            printf('Fulfilment text: %s' . PHP_EOL, $fulfilmentText);
        }

        $sessionsClient->close();
    }

Когда я пытаюсь запустить функцию, используя это -

$array = ['hello'];
 detect_intent_texts(env('DIALOGFLOW_PROJECT_ID'), $array, '134253474848');

Я получаю эту ошибку -

{ "message": "IAM permission 'dialogflow.sessions.detectIntent' on 'projects\/********\/agent' denied.", "code": 7, "status": "PERMISSION_DENIED", "details": [] }

Пожалуйста, в чем может быть проблема здесь?

1 Ответ

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

Похоже, вы не правильно настроили роли при настройке учетной записи службы. См. шаги настройки аутентификации .

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