@broid/line
v2.2.0
Published
Convert Line messages into Activity Streams 2 with Broid Integration
Downloads
3
Readme
Broid Line Integration
Broid Integrations is an open source project providing a suite of Activity Streams 2 libraries for unified communications among a vast number of communication platforms.
Connect your App to Multiple Messaging Channels with One OpenSource Language.
Message types supported
| Simple | Image | Video | Buttons | Location | Phone number | |:------:|:-----:|:-----:|:-------:|:--------:|:------------:| | ✅ | ✅ | ✅ | ✅ | ✅ | |
Phone number is platform limitation.
Getting started
Install
npm install --save @broid/line
Connect to Line
const BroidLine = require('@broid/line');
const line = new BroidLine({
token: "<channel_secret>",
tokenSecret: "<channel_access_token>",
username: "<channel_id>",
http: {
host: "127.0.0.1",
port: 8080
}
});
line.connect()
.subscribe({
next: data => console.log(data),
error: err => console.error(`Something went wrong: ${err.message}`),
complete: () => console.log('complete'),
});
Line can also be used with your existing express setup.
const BroidLine = require('@broid/line');
const express = require("express");
const line = new BroidLine({
token: "<channel_secret>",
tokenSecret: "<channel_access_token>",
username: "<channel_id>"
});
const app = express();
app.use("/line", line.getRouter());
line.connect()
.subscribe({
next: data => console.log(data),
error: err => console.error(`Something went wrong: ${err.message}`),
complete: () => console.log('complete'),
});
app.listen(8080);
Options available
| name | Type | default | Description |
| ---------------- |:--------:| :--------: | --------------------------|
| serviceID | string | random | Arbitrary identifier of the running instance |
| logLevel | string | info
| Can be : fatal
, error
, warn
, info
, debug
, trace
|
| token | string | | Your Channel Secret |
| tokenSecret | string | | Your Channel Access Token |
| username | string | | Your Channel ID |
| http | object | { "port": 8080, "http": "0.0.0.0" }
| WebServer options (host
, port
) |
Quick tips
- The Reply token can be found in object.context
- In One-one chat, the target object is fill with the actor informations.
- Image and Video buffer are not supported so the url will be fill with https://buffer_not_supported.broid.ai
- Because Line doesn't provide informations about the sender in Group, Context. The actor is object is fill with fake informations.
- Line support only Image, Video https url
Receive a message
line.listen()
.subscribe({
next: data => console.log(`Received message: ${data}`),
error: err => console.error(`Something went wrong: ${err.message}`),
complete: () => console.log('complete'),
});
Buttons supported
| mediaType | Action types | Content of value property | | ------------------- |:-------------:| --------------------------| | text/html | Action.URI | URL to be opened in the built-in browser. | | | Action.POSTBACK | Text of message which client will sent back as ordinary chat message. |
Post a message
To send a message, the format should use the broid-schemas.
const formatted_message = {
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Create",
"generator": {
"id": "f6e92eb6-f69e-4eae-8158-06613461cf3a",
"type": "Service",
"name": "line"
},
"object": {
"type": "Note",
"content": "hello world",
"context": {
"type": "Object",
"content": "<reply_token>"
}
},
"to": {
"type": "Person",
"id": "U1a2bb4a2fe413ea1c81ad6310c03d624"
}
};
line.send(formatted_message)
.then(() => console.log("ok"))
.catch(err => console.error(err));
Examples of messages
You can find examples of sent and received messages at Broid-Schemas.
Contributing to Broid
See CONTRIBUTE.md
Copyright & License
Copyright (c) 2016-2017 Broid.ai
This project is licensed under the AGPL 3, which can be found here.