[英]Unable to set up dialogFlow API
我正在嘗試使用此快速指南在我的 Laravel 項目上設置 dialogFlow API - https://cloud.google.com/dialogflow/docs/quick/api 。
這是我創建的用於檢測意圖等的方法。
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": [] }
請問這里可能是什么問題?
聽起來您在配置服務帳戶時沒有正確設置角色。 請參閱身份驗證設置步驟。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.