? SDK para la API de mensajería LINE para Node.js
Consulte los documentos oficiales de la API para obtener más detalles.
$ npm install linebot --save
var linebot = require ( 'linebot' ) ;
var bot = linebot ( {
channelId : CHANNEL_ID ,
channelSecret : CHANNEL_SECRET ,
channelAccessToken : CHANNEL_ACCESS_TOKEN
} ) ;
bot . on ( 'message' , function ( event ) {
event . reply ( event . message . text ) . then ( function ( data ) {
// success
} ) . catch ( function ( error ) {
// error
} ) ;
} ) ;
bot . listen ( '/linewebhook' , 3000 ) ;
const app = express ( ) ;
const linebotParser = bot . parser ( ) ;
app . post ( '/linewebhook' , linebotParser ) ;
app . listen ( 3000 ) ;
Consulte la carpeta examples
para obtener más ejemplos.
Cree una instancia de LineBot con la configuración especificada.
var bot = linebot ( {
channelId : CHANNEL_ID ,
channelSecret : CHANNEL_SECRET ,
channelAccessToken : CHANNEL_ACCESS_TOKEN ,
verify : true // Verify 'X-Line-Signature' header (default=true)
} ) ;
Inicie el servidor http integrado en el port
especificado y acepte la devolución de llamada de solicitud POST en el webHookPath
especificado.
Este método se proporciona por conveniencia. Puede escribir su propio servidor y utilizar métodos verify
y parse
para procesar eventos de webhook. Consulte examples/echo-express-long.js
por ejemplo.
Cree middleware Express.js para analizar la solicitud.
El analizador supone que el cuerpo de la solicitud nunca ha sido analizado por ningún analizador de cuerpo antes, por lo que debe colocarse ANTES de cualquier analizador de cuerpo genérico, por ejemplo, app.use(bodyParser.json());
Verifique el encabezado X-Line-Signature
.
Procese la solicitud de webhook entrante y genere un evento.
Generado cuando se recibe un evento de Webhook.
bot . on ( 'message' , function ( event ) { } ) ;
bot . on ( 'follow' , function ( event ) { } ) ;
bot . on ( 'unfollow' , function ( event ) { } ) ;
bot . on ( 'join' , function ( event ) { } ) ;
bot . on ( 'leave' , function ( event ) { } ) ;
bot . on ( 'memberJoined' , function ( event ) { } ) ;
bot . on ( 'memberLeft' , function ( event ) { } ) ;
bot . on ( 'postback' , function ( event ) { } ) ;
bot . on ( 'beacon' , function ( event ) { } ) ;
Responder un mensaje.
Ver: Evento.respuesta(mensaje)
Enviar mensaje push.
to
es un ID de usuario o una matriz de ID de usuario. Se puede guardar un ID de usuario desde event.source.userId
cuando se agrega como amigo (evento de seguimiento) o durante el chat (evento de mensaje).
message
puede ser una cadena, una matriz de cadenas, un objeto Enviar mensaje o una matriz de objetos Enviar mensaje.
Envíe mensajes push a varios usuarios (máx.: 150 usuarios). Esto es más eficiente que push
, ya que realizará una llamada a la API solo una vez.
to
es una matriz de ID de usuario.
message
puede ser una cadena, una matriz de cadenas, un objeto Enviar mensaje o una matriz de objetos Enviar mensaje.
Enviar mensajes push a todos los usuarios. Esto es más eficiente que push
, ya que realizará una llamada a la API solo una vez.
message
puede ser una cadena, una matriz de cadenas, un objeto Enviar mensaje o una matriz de objetos Enviar mensaje.
Obtenga datos de imágenes, videos y audio enviados por los usuarios como un objeto Buffer.
Ver: Event.message.content()
Obtener información del perfil de usuario del usuario.
Ver: Event.source.profile()
Obtener el perfil de usuario de un miembro de un grupo.
Obtenga el ID de usuario de todos los miembros de un grupo.
Ver: Event.source.member()
Deja un grupo.
Obtenga el perfil de usuario de un miembro en una sala de chat.
Obtenga el ID de usuario de todos los miembros en una sala de chat.
Ver: Event.source.member()
Deja una habitación.
Obtenga la cantidad de usuarios que agregaron este linebot en una fecha específica o antes.
La fecha predeterminada es ayer (UTC+9).
Ver: Obtener número de seguidores
Obtenga la cantidad de cuota de mensajes en el mes actual.
Ver: Obtener el límite objetivo para mensajes adicionales
Obtenga la cantidad de mensajes que este linebot responde, envía, transmite o multidifunde.
La fecha predeterminada es ayer (UTC+9).
Ver: Obtener número de mensajes de respuesta enviados
Proporcione abreviaturas convenientes para llamar a las funciones de LineBot que requieren parámetros de un objeto de evento de origen.
Responder al evento.
message
puede ser una cadena, una matriz de cadenas, un objeto Enviar mensaje o una matriz de objetos Enviar mensaje.
Devuelve un objeto Promise del módulo node-fetch
.
Esta es una abreviatura de: LineBot.reply(event.replyToken, message)
// reply text message
event . reply ( 'Hello, world' ) . then ( function ( data ) {
// success
} ) . catch ( function ( error ) {
// error
} ) ;
// reply multiple text messages
event . reply ( [ 'Hello, world 1' , 'Hello, world 2' ] ) ;
// reply message object
event . reply ( { type : 'text' , text : 'Hello, world' } ) ;
// reply multiple message object
event . reply ( [
{ type : 'text' , text : 'Hello, world 1' } ,
{ type : 'text' , text : 'Hello, world 2' }
] ) ;
event . reply ( {
type : 'image' ,
originalContentUrl : 'https://example.com/original.jpg' ,
previewImageUrl : 'https://example.com/preview.jpg'
} ) ;
event . reply ( {
type : 'video' ,
originalContentUrl : 'https://example.com/original.mp4' ,
previewImageUrl : 'https://example.com/preview.jpg'
} ) ;
event . reply ( {
type : 'audio' ,
originalContentUrl : 'https://example.com/original.m4a' ,
duration : 240000
} ) ;
event . reply ( {
type : 'location' ,
title : 'my location' ,
address : '〒150-0002 東京都渋谷区渋谷2丁目21−1' ,
latitude : 35.65910807942215 ,
longitude : 139.70372892916203
} ) ;
event . reply ( {
type : 'sticker' ,
packageId : '1' ,
stickerId : '1'
} ) ;
event . reply ( {
type : 'imagemap' ,
baseUrl : 'https://example.com/bot/images/rm001' ,
altText : 'this is an imagemap' ,
baseSize : { height : 1040 , width : 1040 } ,
actions : [ {
type : 'uri' ,
linkUri : 'https://example.com/' ,
area : { x : 0 , y : 0 , width : 520 , height : 1040 }
} , {
type : 'message' ,
text : 'hello' ,
area : { x : 520 , y : 0 , width : 520 , height : 1040 }
} ]
} ) ;
event . reply ( {
type : 'template' ,
altText : 'this is a buttons template' ,
template : {
type : 'buttons' ,
thumbnailImageUrl : 'https://example.com/bot/images/image.jpg' ,
title : 'Menu' ,
text : 'Please select' ,
actions : [ {
type : 'postback' ,
label : 'Buy' ,
data : 'action=buy&itemid=123'
} , {
type : 'postback' ,
label : 'Add to cart' ,
data : 'action=add&itemid=123'
} , {
type : 'uri' ,
label : 'View detail' ,
uri : 'http://example.com/page/123'
} ]
}
} ) ;
event . reply ( {
type : 'template' ,
altText : 'this is a confirm template' ,
template : {
type : 'confirm' ,
text : 'Are you sure?' ,
actions : [ {
type : 'message' ,
label : 'Yes' ,
text : 'yes'
} , {
type : 'message' ,
label : 'No' ,
text : 'no'
} ]
}
} ) ;
event . reply ( {
type : 'template' ,
altText : 'this is a carousel template' ,
template : {
type : 'carousel' ,
columns : [ {
thumbnailImageUrl : 'https://example.com/bot/images/item1.jpg' ,
title : 'this is menu' ,
text : 'description' ,
actions : [ {
type : 'postback' ,
label : 'Buy' ,
data : 'action=buy&itemid=111'
} , {
type : 'postback' ,
label : 'Add to cart' ,
data : 'action=add&itemid=111'
} , {
type : 'uri' ,
label : 'View detail' ,
uri : 'http://example.com/page/111'
} ]
} , {
thumbnailImageUrl : 'https://example.com/bot/images/item2.jpg' ,
title : 'this is menu' ,
text : 'description' ,
actions : [ {
type : 'postback' ,
label : 'Buy' ,
data : 'action=buy&itemid=222'
} , {
type : 'postback' ,
label : 'Add to cart' ,
data : 'action=add&itemid=222'
} , {
type : 'uri' ,
label : 'View detail' ,
uri : 'http://example.com/page/222'
} ]
} ]
}
} ) ;
Obtenga información del perfil de usuario del remitente.
Esta es una abreviatura de:
LineBot.getUserProfile(event.source.userId)
si es un chat 1:1LineBot.getGroupMemberProfile(event.source.groupId, event.source.userId)
si el bot está en un grupoLineBot.getRoomMemberProfile(event.source.roomId, event.source.userId)
si el bot está en una sala de chat event . source . profile ( ) . then ( function ( profile ) {
event . reply ( 'Hello ' + profile . displayName ) ;
} ) ;
Obtenga el ID de usuario de todos los miembros de un grupo o sala de chat.
Esta es una abreviatura de:
LineBot.getGroupMember(event.source.groupId)
si el bot está en un grupoLineBot.getRoomMember(event.source.roomId)
si el bot está en una sala de chat event . source . member ( ) . then ( function ( member ) {
console . log ( member . memberIds ) ;
} ) ;
Obtenga datos de imágenes, videos y audio enviados por los usuarios como un objeto Buffer.
Esta es una abreviatura de: LineBot.getMessageContent(event.message.messageId)
event . message . content ( ) . then ( function ( content ) {
console . log ( content . toString ( 'base64' ) ) ;
} ) ;
MIT