@ingestkorea/client-sens
TypeScript icon, indicating that this package has built-in type declarations

1.5.2 • Public • Published

@ingestkorea/client-sens

npm (scoped) npm downloads build status

Description

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

Installing

npm install @ingestkorea/client-sens

Getting Started

Pre-requisites

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

Support Commands

Kakao Alimtalk

  • SendAlimtalk
  • GetAlimtalkStatus (GetRequestStatus is deprecated)
  • GetAlimtalkResult (GetRequestResult is deprecated)
  • GetAlimtalkTemplate (GetTemplate is deprecated)
  • ListAlimtalkTemplates (ListTemplates is deprecated)
  • ListAlimtalkChannels (ListChannels is deprecated)

SMS, LMS, MMS

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

Import

import {
  SensClient,
  SendAlimtalkCommand, SendAlimtalkCommandInput,
  SendSMSCommand, SendSMSCommandInput,
  SendMMSCommand, SendMMSCommandInput,
} 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 params: SendAlimtalkCommandInput = {
  plusFriendId: PLUS_FRIEND_ID,
  templateCode: TEMPLATE_CODE,
  messages: [
    { to: '01012345678', content: CONTENT }
  ]
};
let command = new SendAlimtalkCommand(params);

SendSMS (SMS, LMS)

/**
 * Automatically set message type('SMS' | 'LMS') according to content-length(euc-kr)
 * SMS: max 90bytes
 * LMS: max 2000bytes
 */
let params: SendSMSCommandInput = {
  from: '01012345678',
  content: DEFAULT_CONTENT,
  messages: [
    { to: '0109182xxxx' },
    { to: '0104321xxxx', content?: OPTIONAL_CONTENT_01 }
    { to: '0108765xxxx', content?: OPTIONAL_CONTENT_02, subject?: OPTIONAL_SUBJECT_01 },
  ]
};
/** 
 * 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.
 */
let command = new SendSMSCommand(params);

SendMMS (MMS)

import { readFileSync } from 'node:fs';

let params: SendMMSCommandInput = {
  from: '01012345678',
  content: DEFAULT_CONTENT,
  messages: [
    { to: '0109182xxxx' },
    { to: '0104321xxxx', content?: OPTIONAL_CONTENT_01 }
    { to: '0108765xxxx', content?: OPTIONAL_CONTENT_02, subject?: OPTIONAL_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.
 */
let command = new SendMMSCommand(params);

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.

Package Sidebar

Install

npm i @ingestkorea/client-sens

Weekly Downloads

1

Version

1.5.2

License

MIT

Unpacked Size

166 kB

Total Files

127

Last publish

Collaborators

  • ingestkorea