J'essaie d'accéder à un Google DialogFlow à partir d'une application Windows Java. J'ai la variable d'environnement, GOOGLE_APPLICATION_CREDENTIALS
, Correctement définie et je peux appeler d'autres API Google. Cependant, lorsque je appel:
DetectIntentResponse response = sessionsClient.detectIntent(session, queryInput);
Je reçois une exception grpc:
PERMISSION_DENIED: autorisation IAM 'dialogflow.sessions.detectIntent' sur 'projects/newagent-a0ef5/agent' refusée Chemin de session: projects/NewAgent/agent/sessions/xxxx
"newagent-a0ef5" est l'ID de projet de mon flux. "xxxx" est juste un jeton d'ID de session aléatoire.
Je comprends que je dois activer l'accès à dialogflow.sessions.detectIntent
, Mais je ne sais pas où. J'ai créé un rôle personnalisé avec cette valeur et l'ai ajouté aux trois comptes IAM associés à mon flux. J'ai également activé l'API DialogFlow.
Quelqu'un sait-il où j'ajoute cette autorisation manquante?
J'ai effectué toutes les étapes IAM correctement, mais je transmettais le mauvais ID de projet pour detectIntent. Donc je suppose que quelques choses à vérifier ...
Il y a les choses suivantes que nous devons vérifier:
Ref pour ajouter un utilisateur IAM (n'oubliez pas de choisir la règle en tant qu'administrateur): https://dialogflow.com/docs/reference/v2-auth-setup
J'ai eu le même problème lors de la création d'un chatbot. Je résous ce problème en utilisant un rôle client d'API Dialogflow. J'ai également dû changer ma version Ruby de 2.6 à 2.5.1.
Il est important de se rappeler que le GOOGLE_APPLICATION_CREDENTIALS
doit pointer vers le fichier clé .jason. Pour éviter les problèmes, définissez le chemin d'accès au fichier jason dans le fichier .bashrc. Vous n'avez donc pas besoin d'exporter l'export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"
à chaque redémarrage de votre machine.
Dans mon cas, l'erreur s'est produite car GOOGLE_CLOUD_PROJECT a été défini avec Project Name (un mot en majuscules), mais il doit s'agir de ProjectID (un mot en minuscule). Après l'avoir changé en ProjectID, il a commencé à fonctionner. HTH