【개선 완료】 Dialogflow에서 Microsoft Flow(Azure Logic Apps)를 호출할 때의 주의점

※2019/6/18 추가
본 기사의 내용입니다만, Dialogflow측의 업데이트로 개선이 끝난 것 같습니다.
Microsoft Flow/Logic App의 URL을 Dialogflow에 그대로 붙여도 문제없이 움직이게 된 것 같습니다.

전치



Google에서 제공하는 자연 언어 처리 플랫폼인 Dialogflow를 사용하면 Fulfillment라는 기능으로 외부 웹 API를 호출하여 인텐트 내에서 결과를 사용할 수 있습니다.

또한 Microsoft Flow(또는 Azure Logic Apps)에서는 논코딩으로 HTTP 요청을 트리거하는 간단한 프로그램을 만들 수 있습니다.

그 때문에 Dialogflow에서 Microsoft Flow를 호출하는 것으로, 간단하게 자연 언어 처리를 포함한 처리를 논코딩으로 만들 수 있다…입니다만, 보통 하면(자), 에러가 나와 빠집니다.

이 기사는 그 해결 방법입니다.

Dialogflow + Microsoft Flow에서 발생하는 오류



Dialogflow에서 의도를 설정하고 거기에서 호출한다고 가정합니다.
문제는 Dialogflow에 Microsoft Flow URL을 설정하는 부분입니다.


다음과 같이 Microsoft Flow에서 복사한 URL을

이와 같이 Dialogflow의 Fulfillment에 그대로 붙인 것만으로는, 호출시에 Dialogflow에서 다음과 같은 에러가 나옵니다.



Microsoft Flow에서 반환되는 메시지↓
��{"error":{"code":"AuthorizationFailed","message":"You do not have permissions to perform action 'run' on scope '/triggers/manual/paths/'. Verify you are making the request with the appropriate HTTP method. See http://aka.ms/logic-trigger for details."}}

Dialogflow의 Diagnostic info에서 확인할 수 있는 응답 정보↓
{
  "responseId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "queryResult": {
    "queryText": "60",
    "action": "xxxx",
    "parameters": {
      "hoge": 0,
    },
    "allRequiredParamsPresent": true,
    "fulfillmentMessages": [
      {
        "text": {
          "text": [
            ""
          ]
        }
      }
    ],
    "intent": {
      "name": "projects/xxxx/agent/intents/xxxxxxxx",
      "displayName": "xxxxx"
    },
    "intentDetectionConfidence": 1,
    "diagnosticInfo": {
      "webhook_latency_ms": 739
    },
    "languageCode": "ja"
  },
  "webhookStatus": {
    "code": 16,
    "message": "Webhook call failed. Error: 401 Unauthorized"
  }
}

401 인증 오류가 발생합니다.
Microsoft Flow로 만든 HTTP 트리거의 흐름은 인증 불필요하고 액세스할 수 있을 것인데…

해결책



대답은 다음과 같습니다.

Using webhooks on dialogflow to Azure logic apps - stackoverflow

이와 같이, URL안에 있는 「%2F」→「/」로 변경해 줍니다.



이렇게하면 이상한 인증 오류가 발생하지 않고 Dialogflow와 Microsoft Flow를 함께 사용할 수 있습니다.

보충



나중에 Dialogflow+Microsoft Flow에서 LINE Bot을 작성하는 기사를 내기 때문에 Dialogflow와 Microsoft Flow 및 그 조합에 대한 자세한 해설은 그쪽을 참조하십시오.
→ 쓴 : 현명한 LINE Bot을 완전 무료&논코딩으로 개발한다(Dialogflow+Microsoft Flow)

좋은 웹페이지 즐겨찾기