node.js
const DIFY_API_KEY = "";
const WORKFLOW_ID = "";
// APIエンドポイントのURL
const url = "https://api.dify.ai/v1/chat-messages";
// APIリクエストの実行
async function runDifyChat() {
  try {
    const response = await fetch(url, {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        "Authorization": `Bearer ${DIFY_API_KEY}` // APIキーをAuthorizationヘッダーに設定
      },
      body: JSON.stringify({
        "inputs": {}, // 必要に応じて入力データを設定
        "query": "Node.jsでAPIリクエストを送る方法を教えてください。", // ユーザーからのメッセージ
        // response_mode を "blocking" に変更
        "response_mode": "blocking",
        "conversation_id": "", // 新しい会話を開始
        "user": "unique_user_id" // ユーザーを特定するためのID(任意)
      })
    });
    if (!response.ok) {
      const errorData = await response.json();
      throw new Error(`API Error: ${response.status} - ${JSON.stringify(errorData)}`);
    }
    // blockingモードなら、response.json() で直接パースできる
    const data = await response.json();
    console.log("APIレスポンス:", data);
  } catch (error) {
    console.error("エラーが発生しました:", error);
  }
}
// 関数を実行
runDifyChat();
$ node chat.js
APIレスポンス: {
  event: ‘message’,
  task_id: ’52ba8605-bac3-46b4-a0aa-5958079a3d01′,
  id: ‘d858017a-052d-4a1b-86eb-da673707423e’,
  message_id: ‘d858017a-052d-4a1b-86eb-da673707423e’,
  conversation_id: ’37feb5fc-5694-48ae-ab86-e45fae25aaa9′,
  mode: ‘advanced-chat’,
  answer: ‘まずは「axios」というライブラリを用いると良い。以下のコードを参考にせんといかん。\n’ +
    ‘“`javascript\n’ +
    “const axios = require(‘axios’);\n” +
    “axios.get(‘APIのURL’)\n” +
    ‘  .then(response => {\n’ +
    ‘    console.log(response.data);\n’ +
    ‘  })\n’ +
    ‘  .catch(error => {\n’ +
    ‘    console.error(error);\n’ +
    ‘  });\n’ +
    ‘“`\n’ +
    ‘上記はGETリクエストの例で、POSTリクエストを送る際は`axios.get`の部分を`axios.post`に変え、第二引数に送りたいデータをオブジェクトとして渡せばよい。’,
  metadata: {
    annotation_reply: null,
    retriever_resources: [ [Object], [Object], [Object] ],
    usage: {
      prompt_tokens: 2379,
      prompt_unit_price: ‘0.03’,
      prompt_price_unit: ‘0.001’,
      prompt_price: ‘0.049953’,
      completion_tokens: 206,
      completion_unit_price: ‘0.06’,
      completion_price_unit: ‘0.001’,
      completion_price: ‘0.0091425’,
      total_tokens: 2585,
      total_price: ‘0.0590955’,
      currency: ‘USD’,
      latency: 2.760161219164729
    }
  },
  created_at: 1757759242
}
 
					 
