Glowb Dev Docs
Admin API크리에이터 DM 발송

DM 발송

인증된 크리에이터에게 인스타그램 DM 을 보냅니다. 다건 요청과 부분 성공을 지원합니다.

DM 발송

HTTP 요청

POST /ai/admin/dm/send
Authorization: Bearer {admin_access_token}
Content-Type: application/json
{
  "recipients": [
    { "applicationId": 1234 },
    { "influenceId": 5308 }
  ],
  "content": "촬영 마감이 내일입니다. 확인 부탁드립니다.",
  "campaignNo": 3214,
  "via": "API",
  "instance": "test_glowb_kor",
  "force": false
}

Request Body

필드타입필수설명
recipientsArray예수신자 목록. 최대 100명
contentString예보낼 내용. DM 은 제목이 없어 본문 하나
campaignNoInteger아니오캠페인 번호. 판정에는 쓰지 않고 로그에 남는다
viaString아니오API / AUTODM. 미지정 시 API 먼저, 실패분만 AutoDM
instanceString조건부AutoDM 으로 나갈 때 필요
forceboolean아니오수신을 중단한 크리에이터에게도 보낼지. 기본 false

recipients 항목

필드타입설명
applicationIdInteger신청 번호. 이쪽이 우선
influenceIdInteger크리에이터 번호. 신청 맥락 없이 보낼 때

기존 수동 발송(SMS)의 우선순위와 같습니다 — 정확도 순으로 applicationId 를 먼저 씁니다. 미비한 일정 화면처럼 신청 번호를 늘 갖고 있는 곳은 그대로 넘기면 됩니다.

대상 해석은 TB_APPLICATION.no → member_id → TB_INFLUENCE.no → TB_CREATOR_DM_LINK 순으로 이어집니다. 신청 테이블에 크리에이터 번호가 없어 회원 아이디를 거칩니다.

응답

성공 응답 (200 OK)

{
  "status": 200,
  "message": "DM 발송 요청 완료",
  "data": {
    "requested": 2,
    "ok": 1,
    "failed": 1,
    "autoDmRunId": "061bda10-b2d0-49f3-99d4-235ddc863030",
    "results": [
      {
        "applicationId": 1234,
        "influenceId": 88,
        "ok": true,
        "via": "API",
        "messageId": "aWdfZAG1faXRlbToxOklHTWVzc2..."
      },
      {
        "influenceId": 5308,
        "ok": false,
        "reason": "인증된 인스타 계정이 없습니다. 크리에이터가 먼저 계정 인증을 마쳐야 합니다."
      }
    ]
  }
}
필드설명
requested요청한 수신자 수
ok발송되었거나 큐에 들어간 수
failed실패한 수
autoDmRunIdAutoDM 을 썼을 때만. 여러 명이면 런 하나에 묶인다
results대상별 성패와 사유

한 명이 막혀도 나머지는 그대로 나갑니다. 부분 성공이 정상이므로 results 를 반드시 확인하세요. 전체 실패로 보이지 않습니다.

AutoDM 은 비동기입니다

via 가 AUTODM 이면 응답의 ok 는 "보냈다"가 아니라 "큐에 넣었다" 입니다. 실제 결과는 엔진이 콜백으로 알려주고 TB_AUTO_DM_TARGET 에 쌓입니다 — AutoDM 런 상세에서 확인하세요.

여러 명을 보내면 런 하나에 묶입니다. 런은 인스턴스당 하나씩 직렬로 처리되므로, 따로 만들면 인스턴스를 여러 번 점유하게 됩니다.

에러 응답

상태 코드설명
400내용이 비었거나, 수신자가 없거나, 100명 초과
401 / 403관리자 권한 아님

대상별 실패(인증 없음·수신 중단·핸들 없음)는 오류가 아니라 results 안에 담겨 옵니다.

실패 사유

사유뜻
인증된 인스타 계정이 없습니다크리에이터가 계정 인증을 안 마쳤다
수신을 중단한 크리에이터입니다force: true 로 다시 요청하면 나간다
핸들이 기록돼 있지 않아 AutoDM 으로 보낼 수 없습니다인증 초기 기록. 다시 인증하면 채워진다
instance 를 지정해야 합니다AutoDM 경로인데 인스턴스가 없다
릴레이 발송 설정이 없습니다relay-base-url 또는 verify-secret 미설정

24시간 창이 닫힌 경우는 메타가 돌려준 사유가 그대로 실려 옵니다. 서버가 창을 따로 계산하지 않기 때문입니다.

설정

glowb:
  creator-dm-link:
    verify-secret: 릴레이와 공유하는 시크릿 (발송 인증에도 사용)
    relay-base-url: 릴레이 주소

발송은 릴레이를 거칩니다. 메타 자격증명이 두 군데로 나뉘지 않게 하려는 것이고, 발송 이력도 수신과 같은 테이블에 모여야 대화 조회에서 한 흐름으로 보입니다.

On this page