1.0.1 • Published 6 months ago

@infobank/infobank-omni-sdk-js v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
6 months ago

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.

1.0.1

6 months ago

1.0.0

6 months ago