JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 16
  • Score
    100M100P100Q67390F
  • License MIT

INGESTKOREA SDK Naver Cloud Platform SENS Client for Node.js.

Package Exports

  • @ingestkorea/client-sens
  • @ingestkorea/client-sens/dist-cjs/index.js
  • @ingestkorea/client-sens/dist-es/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@ingestkorea/client-sens) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@ingestkorea/client-sens

npm (scoped) npm downloads build status license

Description

INGESTKOREA SDK Naver Cloud Platform SENS Client for Node.js.

Installing

npm install @ingestkorea/client-sens

Getting Started

Pre-requisites

  • Use TypeScript v5.x
  • Includes the TypeScript definitions for node.
    npm install -D typescript # save dev mode
    npm install -D @types/node # save dev mode

Support Commands

Kakao Alimtalk

  • SendAlimtalk
  • GetAlimtalkStatus
  • GetAlimtalkResult
  • GetAlimtalkTemplate
  • ListAlimtalkStatus
  • ListAlimtalkTemplates
  • ListAlimtalkChannels

SMS, LMS, MMS

  • SendSMS (SMS, LMS)
  • SendMMS (MMS)
  • GetSMSStatus (SMS, LMS, MMS)
  • GetSMSResult (SMS, LMS, MMS)

Import

import { SensClient, SendAlimtalkCommand, SendSMSCommand, SendMMSCommand } from "@ingestkorea/client-sens";

Usage

To send a request, you:

  • Initiate client with configuration.
  • Initiate command with input parameters.
  • Call send operation on client with command object as input.
// a client can be shared by different commands.
const client = new SensClient({
  credentials: {
    accessKey: ACCESS_KEY,
    secretKey: SECRET_KEY,
  },
  serviceId: {
    sms: "ncp:sms:kr:123456789xxx:your-service-name", // optional
    kakao: "ncp:kkobizmsg:kr:9876xxx:your-service-name", // optional
  },
});

/**
 * accessKey, secretKey: https://www.ncloud.com/mypage/manage/authkey
 * serviceId: https://console.ncloud.com/sens/project
 *
 * at least one serviceId required
 * if you call send operation without serviceId, sdk throw error
 */

SendAlimtalk

let command = new SendAlimtalkCommand({
  plusFriendId: PLUS_FRIEND_ID,
  templateCode: TEMPLATE_CODE,
  messages: [{ to: "01012345678", content: CONTENT }],
});

ListAlimtalkStatus

let command = new ListAlimtalkStatusCommand({
  plusFriendId: CHANNEL_ID,
  requestStartTime: "yyyy-MM-ddTHH:mm:ss.SSS", // Optional(KST) // default: current - 24hours
  requestEndTime: "yyyy-MM-ddTHH:mm:ss.SSS", // Optional(KST) // default: current
});

GetAlimtalkStatus

let command = new GetAlimtalkStatusCommand({
  requestId: REQUEST_ID,
});

SendSMS (SMS, LMS)

let command = new SendSMSCommand({
  from: '01012345678',
  content: DEFAULT_CONTENT,
  messages: [
    { to: '0109182xxxx' },
    { to: '0104321xxxx', content?: ONTENT_01 }
    { to: '0108765xxxx', content?: CONTENT_02, subject?: SUBJECT_01 },
  ]
});

/**
 * Automatically set message type('SMS' | 'LMS') according to content-length(euc-kr)
 * SMS: max 90bytes
 * LMS: max 2000bytes
 */

/**
 * If you do not define the subject and content within the messages,
 * it is sent with the value specified as the default subject('제목없음') and content.
 */

SendMMS (MMS)

import { readFileSync } from 'node:fs';

let command = new SendMMSCommand({
  from: '01012345678',
  content: DEFAULT_CONTENT,
  messages: [
    { to: '0109182xxxx' },
    { to: '0104321xxxx', content?: CONTENT_01 }
    { to: '0108765xxxx', content?: CONTENT_02, subject?: SUBJECT_01 },
  ],
  files: [ // support jpg, jpeg
    { name: '/your/absolute/path/sample-image-1.jpg' },
    {
      name: '/your/absolute/path/sample-image-2.jpg',
      body?: readFileSync('/your/absolute/path/sample-image-2.jpg', { encoding: 'base64' })
    }
  ]
});

/**
 * If you do not define the subject and content within the messages,
 * it is sent with the value specified as the default subject('제목없음') and content.
 */

Async/await

(async () => {
  try {
    const data = await client.send(command);
    console.dir(data, { depth: 4 });
  } catch (err) {
    console.dir(err, { depth: 4 });
  }
})();

Promises

client
  .send(command)
  .then((data) => console.dir(data, { depth: 4 }))
  .catch((err) => console.dir(err, { depth: 4 }));

License

This SDK is distributed under the MIT License, see LICENSE for more information.