1

Node DialogFlow API 統合で問題が発生しました。

考えられるすべてのドキュメントに従っていますが、API を呼び出すために必要なアクセス許可を取得できません。

Dialogflow admin からのエージェント サービス アカウントは次のとおりです。

DialogFlow サービス アカウント 次に、サービス アカウントの役割:

サービス アカウントの承認

「Client de l'API Dialogflow」ロールの詳細。「dialogflow.sessions.detectIntent」が表示されます。

DialogFlow API 承認

最後に、サービス アカウントに対応する JSON ファイルをダウンロードした後の Node エラー:

ノード エラー

何か不足していますか?

他の JSON ファイルを生成し、他のサービス アカウントを作成しようとしましたが、何も機能しませんでした...

Node スクリプトは単純で、公式チュートリアルから貼り付けただけです。

const projectId = 'newagent-9e77e '; //https://dialogflow.com/docs/agents#settings
const sessionId = 'quickstart-session-id';
const query = 'bonjour';
const languageCode = 'fr-FR';

// Instantiate a DialogFlow client.
const dialogflow = require('dialogflow');
const sessionClient = new dialogflow.SessionsClient();

// Define session path
const sessionPath = sessionClient.sessionPath(projectId, sessionId);

// The text query request.
const request = {
  session: sessionPath,
  queryInput: {
    text: {
      text: query,
      languageCode: languageCode,
    },
  },
};

// Send request and log result
sessionClient
  .detectIntent(request)
  .then(responses => {
    console.log('Detected intent');
    const result = responses[0].queryResult;
    console.log(`  Query: ${result.queryText}`);
    console.log(`  Response: ${result.fulfillmentText}`);
    if (result.intent) {
      console.log(`  Intent: ${result.intent.displayName}`);
    } else {
      console.log(`  No intent matched.`);
    }
  })
  .catch(err => {
    console.error('ERROR:', err);
  });

ありがとう !

4

1 に答える 1