Я пытаюсь использовать это краткое руководство по настройке 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": [] }
Пожалуйста, в чем может быть проблема здесь?