Glowb Dev Docs
Admin API인스타 DM 자동응답

개요

인스타그램 DM 자동응답의 구조와 어드민 API 목록입니다.

인스타 DM 자동응답

@glow.b_kor 인박스로 들어온 DM 을 규칙에 따라 자동응답하고, 그 이력을 저장합니다.

어디서 무엇을 하나

DM 수신·판정·발송은 Cloud Run 릴레이(glowb-ig-dm-relay)가 담당하고, glowb-server 는 조회와 규칙 관리만 합니다.

수신부를 서버 밖에 둔 이유는 메타 콜백 URL 이 앱당 하나이기 때문입니다. test 와 prod 가 같은 앱을 쓰므로, 어느 한쪽 서버에 직접 붙이면 다른 쪽이 웹훅을 받지 못합니다.

Meta ──▶ 릴레이 (Cloud Run)          glowb-server ──▶ 어드민 화면
          HMAC 검증 · 에코 필터          조회 · 규칙 관리
          규칙 판정 · 발송 · 적재
              └──────────▶ 크롤 Postgres ◀──────────┘

저장소

크롤 Postgres 의 ig_dm_message(대화 이력)와 ig_dm_rule(규칙)입니다.

이 DB 는 환경 무관입니다. test 서버도 같은 DB 를 보므로 test/prod 어드민이 같은 데이터를 봅니다. DM 은 인스타 계정이 하나뿐이라 애초에 환경 구분이 없어 성질이 맞습니다.

대화 이력은 읽기 전용입니다. 쓰는 쪽은 릴레이 하나뿐이며, 쓰기 경로를 둘로 만들면 중복·순서 문제가 생깁니다. 규칙만 이 API 로 관리합니다.

안전장치

내용
메타 역할 필터Standard Access 에서는 앱 역할자와의 대화만 접근됩니다
화이트리스트릴레이 코드 상수. 화면에서 실수로 열 수 없게 하려는 의도적 선택입니다
Flagsmithig_dm_auto_reply_enabled. 못 읽으면 꺼진 것으로 봅니다
근거 없는 금액 차단QUOTE 규칙인데 기준가를 못 구하면 발송하지 않습니다

엔드포인트

메서드경로설명
GET/ai/admin/ig-dm/threads대화 상대 목록
GET/ai/admin/ig-dm/threads/:peerIgsid/messages대화 상세
GET/ai/admin/ig-dm/rules규칙 목록
POST/ai/admin/ig-dm/rules규칙 추가
PUT/ai/admin/ig-dm/rules/:id규칙 수정
DELETE/ai/admin/ig-dm/rules/:id규칙 삭제

전부 ADMIN 권한이 필요합니다.

미발송 사유

OUT 행의 blockedReason 이 비어 있으면 정상 발송입니다. 값이 있으면 보내지 않은 것이고, 그 값이 사유입니다.

NO_RULE어떤 규칙에도 안 맞았습니다. 모르는 말에는 답하지 않습니다
NO_QUOTE금액을 말해야 하는 규칙인데 기준가를 구하지 못했습니다
DRY_RUN자동응답이 꺼져 있어 초안만 남겼습니다
NOT_ALLOWED화이트리스트 밖 발신자입니다. 본문은 저장하지 않습니다

On this page