line-notify-sdk
v2.0.1
Published
🔩 A third party node.js line notify sdk.
Downloads
76
Maintainers
Readme
line-notify-sdk-nodejs
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
GET
https://notify-bot.line.me/oauth/authorize- notify.generateOauthURL(state)
POST
https://notify-bot.line.me/oauth/token- notify.getToken(client_code)
Notification API
GET
https://notify-api.line.me/api/status- notify.getStatus(token)
POST
https://notify-api.line.me/api/notify- notify.notify(token, message, imageThumbnail, imageFullsize, stickerPackageId, stickerId, notificationDisabled)
POST
https://notify-api.line.me/api/revoke- notify.revoke(token)
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 name | Description
|:----------:|:-------------
| X-RateLimit-Limit | The limit of API calls per hour
| X-RateLimit-Remaining | The number of possible remaining API calls
| X-RateLimit-ImageLimit | The limit of Uploading image per hour
| X-RateLimit-ImageRemaining | The number of possible remaining Uploading image
| X-RateLimit-Reset | The time when the limit is reset (UTC epoch seconds)
Contributing
Thanks to all the people who already contributed!