수신거부번호 관리

센드온 SDK는 수신거부번호 목록 관리 기능을 제공하여 발송 시 차단된 전화번호를 자동으로 제외할 수 있습니다.
개발자는 API를 이용해 수신거부번호 목록에 전화번호를 추가하거나 삭제할 수 있으며, 등록된 리스트를 조회할 수도 있습니다.
수신거부번호 목록 조회
현재 등록된 수신거부번호 목록을 조회할 수 있습니다.
Node.js 예제
기본 차단목록 조회
import { Sendon } from '@alipeople/sendon-sdk-typescript'
import { GetBlocklistResponseDto } from '@alipeople/sendon-sdk-typescript';
const sendon = new Sendon({ id: "YOUR_ID", apikey: "YOUR_APIKEY" })
#### 기본 차단목록 조회
const basicBlocklist: GetBlocklistResponseDto = await sendon.contacts.getBlocklist({
cursor: 0,
limit: 10,
});
발신번호로 필터링
// 특정 발신번호로 필터링된 차단목록 조회
const senderFiltered: GetBlocklistResponseDto =
await sendon.contacts.getBlocklist({
senderNumber: "01012345678",
cursor: 0,
limit: 5,
});
카카오 채널 ID로 필터링
// 카카오 채널 ID로 필터링된 차단목록 조회
const kakaoFiltered: GetBlocklistResponseDto =
await sendon.contacts.getBlocklist({
kakaoChannelIds: ["YOUR_CHANNEL_ID"],
cursor: 0,
limit: 5,
});
차단 타입별 필터링
// 특정 차단 타입으로 필터링된 차단목록 조회
const typeFiltered: GetBlocklistResponseDto =
await sendon.contacts.getBlocklist({
blockType: ["API"],
cursor: 0,
limit: 10,
});
날짜 범위로 필터링
// 최근 30일간의 차단목록 조회
const now = new Date();
const thirtyDaysAgo = new Date(now.getTime() - 30 * 24 * 60 * 60 * 1000);
const dateFiltered: GetBlocklistResponseDto =
await sendon.contacts.getBlocklist({
startDate: thirtyDaysAgo.toISOString().slice(0, 19).replace("T", " "),
endDate: now.toISOString().slice(0, 19).replace("T", " "),
cursor: 0,
limit: 20,
});
응답 예제
{
"code": 200,
"message": "OK",
"data": {
"blocklist": [
{
"userId": 12345,
"channelId": 1,
"phoneNumber": "01012345678",
"senderNumber": "01087654321",
"blockId": 67890,
"blockType": "API",
"blockDomain": "https://sendon.io",
"messageType": "SMS",
"kakaoChannelId": "카카오 채널 ID",
"rcsBrandId": "RCS 브랜드 ID",
"rcsChatbotId": "RCS 챗봇 ID",
"createdAt": "2024-12-25T10:00:00Z",
"updatedAt": "2024-12-25T15:30:00Z"
},
{
"userId": 12345,
"channelId": 1,
"phoneNumber": "01012345678",
"senderNumber": "01087654321",
"blockId": 67891,
"blockType": "WEB",
"blockDomain": "https://sendon.io",
"messageType": "KAKAO",
"kakaoChannelId": "카카오 채널 ID",
"rcsBrandId": "RCS 브랜드 ID",
"rcsChatbotId": "RCS 챗봇 ID",
"createdAt": "2024-12-25T10:05:00Z",
"updatedAt": "2024-12-25T15:35:00Z"
}
],
"cursor": null,
"totalCount": 2
}
}
수신거부번호 목록 조회 응답 필드 설명
파라미터 | 타입 | 설명 | 필수 여부 |
---|---|---|---|
userId | number | 수신거부를 등록한 사용자 ID | 필수 |
channelId | number | 수신거부를 적용할 채널 ID | 필수 |
phoneNumber | string | 수신거부를 원하는 수신자의 전화번호 | 필수 |
senderNumber | string | 수신거부를 적용할 발신번호 | 필수 |
blockId | number | 수신거부 항목 ID | 필수 |
blockType | string | 수신거부 유형 (API, WEB, ARS 등) | 필수 |
blockDomain | string | 수신거부 도메인 | 필수 |
messageType | string | 메시지 유형 (SMS, KAKAO, RCS 등) | 필수 |
kakaoChannelId | string | 카카오 채널 ID | 필수 |
rcsBrandId | string | RCS 브랜드 ID | 필수 |
rcsChatbotId | string | RCS 챗봇 ID | 필수 |
createdAt | string | 수신거부 항목이 생성된 날짜와 시간 | 필수 |
updatedAt | string | 수신거부 항목이 마지막으로 수정된 날짜와 시간 | 필수 |
자세한 코드 예제는 아래 문서를 참고하세요.
수신거부번호 추가
특정 전화번호를 수신거부번호 목록에 추가할 수 있습니다.
수신거부 메시지 유형 별 필수 매개변수
각 메시지 유형에 해당하는 필수 매개변수를 제공하지 않으면 API 요청이 실패합니다. messageType에 맞는 올바른 식별자를 반드시 포함해주세요.
필수 매개변수: senderNumber
SMS 메시지 수신거부를 위해서는 발신번호가 반드시 필요합니다.
{
"phoneNumber": "01012345678",
"messageType": "SMS",
"senderNumber": "01087654321"
}
Node.js 예제
SMS/MMS 발신번호별 차단 추가
import { Sendon } from "@alipeople/sendon-sdk-typescript";
import { CreateBlocklistResponseDto } from "@alipeople/sendon-sdk-typescript";
const sendon = new Sendon({ id: "YOUR_ID", apikey: "YOUR_APIKEY" });
// 특정 발신번호로부터의 SMS/MMS 차단 추가
const senderBlocklist: CreateBlocklistResponseDto =
await sendon.contacts.createBlocklist({
phoneNumber: "01087654321",
messageType: "SMS",
senderNumber: "01012345678",
});
카카오 채널 차단 추가
// 특정 카카오 채널로부터의 메시지 차단 추가
const kakaoBlocklist: CreateBlocklistResponseDto =
await sendon.contacts.createBlocklist({
phoneNumber: "01087654321",
messageType: "KAKAO",
kakaoChannelId: "YOUR_CHANNEL_ID",
});
응답 예제
{
"code": 200,
"message": "OK",
"data": {
"id": 1
}
}
수신거부번호 추가 응답 필드 설명
파라미터 | 타입 | 설명 | 필수 여부 |
---|---|---|---|
id | number | 추가된 수신거부번호 ID | 필수 |
수신거부번호 삭제
특정 전화번호를 수신거부번호 목록에서 삭제할 수 있습니다.
Node.js 예제
import { Sendon } from "@alipeople/sendon-sdk-typescript";
import { DeleteBlocklistResponseDto } from "@alipeople/sendon-sdk-typescript";
const sendon = new Sendon({ id: "YOUR_ID", apikey: "YOUR_APIKEY" });
// 차단 목록에서 특정 ID를 가진 항목 삭제
const removeResult: DeleteBlocklistResponseDto =
await sendon.contacts.deleteBlocklist(blocklistId);
완전한 추가/삭제 예제
import {
CreateBlocklistResponseDto,
DeleteBlocklistResponseDto,
} from "@alipeople/sendon-sdk-typescript";
import { HttpStatusCode } from "axios";
// 차단 추가 후 삭제하는 완전한 예제
async function addAndRemoveBlocklist() {
// 1. 차단 추가
const senderBlocklist: CreateBlocklistResponseDto =
await sendon.contacts.createBlocklist({
phoneNumber: "01087654321",
messageType: "SMS",
senderNumber: "01012345678",
});
console.log("차단 추가 결과:", senderBlocklist);
// 2. 잠시 대기
await new Promise((resolve) => setTimeout(resolve, 2000));
// 3. 추가가 성공했다면 삭제
if (senderBlocklist.code === HttpStatusCode.Ok && senderBlocklist.data) {
const deleteResult: DeleteBlocklistResponseDto =
await sendon.contacts.deleteBlocklist(senderBlocklist.data.id);
console.log("차단 삭제 결과:", deleteResult);
}
}
응답 예제
{
"code": 200,
"message": "OK",
"data": {
"isSuccess": true
}
}
수신거부번호 삭제 응답 필드 설명
파라미터 | 타입 | 설명 | 필수 여부 |
---|---|---|---|
isSuccess | boolean | 수신거부 삭제 성공 유무 | 필수 |
자세한 코드 예제는 아래 문서를 참고하세요.
사용 시 주의사항
- 자동 필터링 기능: 발송 시 수신거부번호 목록에 등록된 번호는 자동으로 필터링되므로 추가적인 처리 없이 안정적인 메시징이 가능합니다.
- 응답 데이터 확인: 추가, 삭제, 조회 요청 후 반환되는 데이터를 확인하여 요청이 성공적으로 처리되었는지 점검하세요.
- 권한 관리: 수신 차단 리스트 관리 기능은 민감한 작업이므로 적절한 인증과 권한 설정이 필요합니다.
Updated 20 days ago