1.0.1 • Published 6 months ago
@infobank/infobank-omni-sdk-js v1.0.1
OMNI-SDK-JS
JavaScript (TypeScript 지원) 기반의 Infobank OMNI API SDK입니다.
builder 패턴 또는 JSON 형식으로 메시지를 구성하여 쉽게 사용할 수 있으며, Node.js 및 Next.js 환경에서 동작합니다.
※ React 등의 클라이언트 환경에서는 CORS 제한이 있을 수 있습니다.
📖 목차
설치 (Installation)
방법 1: npm 레지스트리에서 설치
npm install @infobank/infobank-omni-sdk-js방법 2: 소스 로컬 설치 및 빌드
# 소스 클론 또는 다운로드
git clone https://github.com/icomm-api/omni-sdk-js.git
cd omni-sdk-js
# 의존성 설치 및 빌드
npm install
npm run build
# 프로젝트에서 로컬 링크
npm install ./[다운로드한 SDK 경로]방법 3: node_modules 직접 복사
cp -R ./[SDK경로] ./node_modules/omni-sdk-js
cd ./node_modules/omni-sdk-js
npm install
npm run build사용법 (Usage)
공통 변수 예시
const baseURL = "https://omni.ibapi.kr";
const userId = "YOUR_CLIENT_ID";
const userPassword = "YOUR_PASSWORD";
const token = "ACCESS_TOKEN"; // getToken() 이후 획득1️⃣ 토큰 발급
Node.js
const { OMNI, OMNIOptionsBuilder } = require('omni-sdk-js');
async function main() {
const option = new OMNIOptionsBuilder()
.setBaseURL(baseURL)
.setId(userId)
.setPassword(userPassword)
.build();
const omni = new OMNI(option);
const token = await omni.auth.getToken();
console.log('Token:', token);
}
main();Next.js
import { NextResponse } from 'next/server';
import { OMNI, OMNIOptionsBuilder } from 'omni-sdk-js';
export async function POST() {
const option = new OMNIOptionsBuilder()
.setBaseURL(baseURL)
.setId(userId)
.setPassword(userPassword)
.build();
const omni = new OMNI(option);
const response = await omni.auth?.getToken();
return NextResponse.json(response);
}2️⃣ File 업로드 (MMS 등)
const fs = require('fs');
const path = require('path');
const FormData = require('form-data');
const { OMNI, OMNIOptionsBuilder } = require('omni-sdk-js');
const option = new OMNIOptionsBuilder().setBaseURL(baseURL).setToken(token).build();
async function fileUpload() {
const omni = new OMNI(option);
const filePath = path.join(__dirname, './sample.jpg');
const formData = new FormData();
formData.append('file', fs.createReadStream(filePath));
const result = await omni.file.uploadFile({ serviceType: "MMS" }, formData);
console.log(result);
}
fileUpload();3️⃣ Form 등록 (알림톡 + SMS 혼합)
const { OMNI, OMNIOptionsBuilder } = require('omni-sdk-js');
const option = new OMNIOptionsBuilder().setBaseURL(baseURL).setToken(token).build();
async function formPost() {
const omni = new OMNI(option);
const req = {
messageForm: [
{
alimtalk: {
msgType: "AT",
senderKey: "{senderKey}",
templateCode: "{templateCode}",
text: "[알림톡 메시지 예시]"
}
},
{
sms: {
from: "0316281500",
text: "SMS fallback 메시지"
}
}
]
};
const res = await omni.form.registForm(req);
console.log(res);
}
formPost();4️⃣ 메시지 전송 (SMS)
const { OMNI, OMNIOptionsBuilder, SMSRequestBodyBuilder } = require('omni-sdk-js');
async function sendSms() {
const option = new OMNIOptionsBuilder().setBaseURL(baseURL).setToken(token).build();
const omni = new OMNI(option);
const req = new SMSRequestBodyBuilder().setFrom("0316281500").setTo("01012345678").setText("테스트 SMS").build();
const res = await omni.send.SNS(req);
console.log(res);
}
sendSms();5️⃣ 리포트 조회
const { OMNI, OMNIOptionsBuilder } = require('omni-sdk-js');
const option = new OMNIOptionsBuilder().setBaseURL(baseURL).setToken(token).build();
async function getReport() {
const omni = new OMNI(option);
const result = await omni.polling.getReport();
console.log('Report:', result);
}
getReport();구조 및 구성
omni-sdk-js/
├── src/ # TypeScript 소스 코드
├── dist/ # 빌드된 JavaScript 코드
├── examples/ # 사용 예제
├── package.json
├── README.md- main:
dist/index.js - types:
dist/index.d.ts(TypeScript 지원)
라이선스
이 프로젝트는 MIT License를 따릅니다. © 2025 Infobank Corp.