2.0.1 • Published 3 years ago

line-notify-sdk v2.0.1

Weekly downloads
4
License
ISC
Repository
github
Last release
3 years ago

line-notify-sdk-nodejs

GitHub package.json version Typescript npm GitHub code size in bytes GitHub license

This project is a third-party LINE Notify SDK.

LINE official didn't provide SDK of Notify function. It's not convenient for developers.

This package is TypeScript compatible and contains TypeScript declarations.

Official LINE Notify API provides endpoints for Authentication and Notification, so does this project.

Authentication API

  1. GET https://notify-bot.line.me/oauth/authorize
    • notify.generateOauthURL(state)
  2. POST https://notify-bot.line.me/oauth/token

    • notify.getToken(client_code)

Notification API

Installation

npm install line-notify-sdk

Usage

Authentication

1. Initialization

Import module and initial sdk object. Constructor's arguments are optional if you have default variables in your environment.

const notifySDK = require('line-notify-sdk')
const notify = new notifySDK(clientID,clientSecret,redirectURI)
// These parameters are optional if you have 
// default variables in your environment

Default environment variables

LINE_NOTIFY_CLIENT_ID=
LINE_NOTIFY_CLIENT_SECRET=
LINE_NOTIFY_REDIRECT_URI=

2. Generate authentication link

notify.generateOauthURL(state)

return string

Example :

const url = notify.generateOauthURL('somerandomstate')

3. Get token from code

notify.getToken(clientCode)

return promise resolves to string

Example:

const token = await notify.getToken(clientCode)
//token: ZnCpYyTJq7_this_is_user_token_alxj8nWpzBl1

Notification

Initialization

Import module and initial sdk object. Does not require environment variables to send Notifications

const notifySDK = require('line-notify-sdk')
const notify = new notifySDK()

Get token status

notify.getStatus(token)

return promise resolves to object

Example:

try {
    const info = await notify.getStatus(token)
    // info : { status: 200, message: 'ok', targetType: 'USER', target: 'yiyu0x' }
} catch (error) {
    // error : { status: 4xx, message: 'Invalid access token or other message from LINE'}
}

Send notification

notify.notify(token, message, imageThumbnail, imageFullsize, stickerPackageId, stickerId, notificationDisabled)

return: promise resolves to object

Example:

// Send a message
notify.notify(token, 'hello').then((body) => {
    console.log(body)
    //{ status: 200, message: 'ok' }
}).catch((e)=>console.log(e))

// Send a sticker
notify.notify(token, 'Here is my sticker', '', '', 1, 1).then((body) => {
    console.log(body)
}).catch((e)=>console.log(e))

Revoke token

notify.revoke(token)

return promise resolves to object

Example:

// revoke token
notify.revoke(token).then((body) => {
	console.log(body)//{ status: 200, message: 'ok' }
}).catch((e)=>console.log(e))

TypeScript

// your-project.ts

import { notifySDK } from "line-notify-sdk";
const notify = new notifySDK();

notify.generateOauthURL('somerandomstate');
notify.getToken('clientCodeFromCallback');
notify.getStatus('yourToken');
notify.notify('yourMessage');
notify.revoke('yourToken');

Others

  • Example Authentication using Express server at example/server.js
  • Example Notifications at example/notify.js

API Rate Limits

Reference : LINE Docs

There is a limit to the number of times an API can be called on each service. The default number is set to 1000.

The limit is per access token.

The API Rate Limit status, can be checked on the response header of the API.

Header nameDescription
X-RateLimit-LimitThe limit of API calls per hour
X-RateLimit-RemainingThe number of possible remaining API calls
X-RateLimit-ImageLimitThe limit of Uploading image per hour
X-RateLimit-ImageRemainingThe number of possible remaining Uploading image
X-RateLimit-ResetThe time when the limit is reset (UTC epoch seconds)

Contributing

Thanks to all the people who already contributed!

2.0.1

3 years ago

1.2.0

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

2.0.0

3 years ago

1.1.2

3 years ago

1.0.0

4 years ago