NiseLine is inspired by LocalStack. Goal of this tool is to create a mock service for LINE.
Launch NiseLine server.
docker run -d -p 3000:3000 dyoshikawa/niseline:latest
And install NiseLiff SDK.
npm i @niseline/niseliff
Use NiseLiff sdk in your client app!
import { buildNiseliff } from '@niseline/niseliff'
import React from 'react'
import ReactDOM from 'react-dom'
declare global {
interface Window {
liff: Liff
}
}
window.liff = buildNiseliff({
liffId: 'DUMMY_LIFF_ID',
})
window.liff
.init({
liffId: 'DUMMY_LIFF_ID',
})
.then(() => {
ReactDOM.render(
<React.StrictMode>Your client app</React.StrictMode>,
document.getElementById('root')
)
})
npm i @niseline/niseliff
// /path/to/config.ts
export const env: 'local' | 'development' | 'staging' | 'production' = 'local'
// /path/to/liff.ts
import * as config from '/path/to/config'
import realLiff from '@line/liff'
import { buildNiseliff } from '@niseline/niseliff'
const liff =
config.env === 'local' ? buildNiseliff({ liffId: 'DUMMY_LIFF_ID' }) : realLiff
export default liff
// /path/to/index.tsx
import liff from '/path/to/liff'
import React from 'react'
import ReactDOM from 'react-dom'
liff.init({ liffId: 'DUMMY_LIFF_ID' }).then(() => {
ReactDOM.render(
<React.StrictMode>Your client app</React.StrictMode>,
document.getElementById('root')
)
})
- Ready
- Id
- Initialize liff app
- Get os
- Get language
- Get version
- Get line version
- Is in client
- Is logged in
- Is api available
- Login
- Logout
- Get access token
- Get ID token
- Get decoded ID token
- Get context
- Get profile
- Get friendship
- Permission query
- Permission request all
- Permanent link create url by
- Permanent link create url
- Permanent link set extra query param
- Send messages
- Open window
- Share target picker
- Scan code v2
- Scan code
- Close window
- Init plugins
- Bluetooth get availability
- Bluetooth request device
- Bluetooth referring device
docker run -d -p 3000:3000 dyoshikawa/niseline:latest
curl http://localhost:3000/niseline/api/ping
# => {"ping":"pong"}
# docker-compose.yml
version: '3'
services:
niseline:
image: dyoshikawa/niseline:latest
ports:
- 3000:3000
docker compose up -d
curl http://localhost:3000/niseline/api/ping
# => {"ping":"pong"}
curl --request POST \
--url http://localhost:3000/niseline/api/users \
--header 'content-type: application/json' \
--data '{"id": "FOO_ID","name": "Foo","picture": "http://example.com/foo.jpg","email": "foo@example.com"}'
# => null
curl -v -X POST 'http://localhost:3000/oauth2/v2.1/verify' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'id_token=FOO_ID' \
--data-urlencode 'client_id=1234567890'
# => {"iss":"https://example.com","sub":"FOO_ID","aud":"1234567890","exp":1504169092,"iat":1504263657,"nonce":"0987654asdf","amr":["pwd"],"name":"Foo","picture":"http://example.com/foo.jpg","email":"foo@example.com"}
- Issue access token
- Verify access token
- Refresh access token
- Revoke access token
- Verify ID token
- Get user profile
- Get friendship status
- Send reply message
- Send push message
- Send multicast message
- Send narrowcast message
- Get narrowcast progress status
- Send broadcast message
- Get content
- Get quota
- Get consumption
- Get number of reply messages
- Get number of push messages
- Get number of multicast messages
- Get number of broadcast messages
- Retry api request