Dialogflow 정리
0. 환경 django 서버에서 dialogflow rest api를 호출. 1. IAM permission 'XXX' on 'projects/PROJECT_ID/agent' denied. 오류 Dialogflow agent 생성 시 자동으로 서비스 계정을 생성해주는데 권한이 "Dialogflow API 클라이언트"만 들어가있다. 이 상태로 생성 API를 호출하면 위 에러가 발생한다. API를 호출할 때 사용할 서비스 계정에 "Dialogflow API 관리자" 권한을 추가해주면 된다. 2. Read-only field 'XXX' cannot be set. (INVALID_ARGUMENT) 오류 연계 인텐트를 업데이트(batchUpdate)할 때 발생했다. Intent의 읽기전용 필드인 rootFollowupIntentName, parentFollowupIntentName, followupIntentInfo를 수정하려고 하면 발생하는 것 같다. updateMask parameter를 통해 수정하려는 필드를 명시해주는 방법으로 해결했다. updateMask는 "name,displayName,..." 처럼 수정하려는 필드를 ,로 구분된 문자열로 써주면 되는 것 같다( https://developers.google.com/protocol-buffers/docs/reference/google.protobuf?_ga=2.29673912.-664540806.1558407355#fieldmask 참조).