? SDK para a API de mensagens LINE para Node.js
Consulte os documentos oficiais da API para obter detalhes.
$ 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 ) ;
Veja a pasta examples
para mais exemplos.
Crie uma instância do LineBot com configuração especificada.
var bot = linebot ( {
channelId : CHANNEL_ID ,
channelSecret : CHANNEL_SECRET ,
channelAccessToken : CHANNEL_ACCESS_TOKEN ,
verify : true // Verify 'X-Line-Signature' header (default=true)
} ) ;
Inicie o servidor http integrado na port
especificada e aceite o retorno de chamada da solicitação POST no webHookPath
especificado.
Este método é fornecido por conveniência. Você pode escrever seu próprio servidor e usar métodos verify
e parse
para processar eventos de webhook. Veja examples/echo-express-long.js
por exemplo.
Crie o middleware Express.js para analisar a solicitação.
O analisador assume que o corpo da solicitação nunca foi analisado por nenhum analisador de corpo antes, portanto ele deve ser colocado ANTES de qualquer analisador de corpo genérico, por exemplo, app.use(bodyParser.json());
Verifique o cabeçalho X-Line-Signature
.
Processe a solicitação de webhook recebida e gere um evento.
Gerado quando um evento Webhook é recebido.
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 ) { } ) ;
Responda uma mensagem.
Veja: Event.reply(mensagem)
Enviar mensagem push.
to
é um userId ou uma matriz de userId. Um userId pode ser salvo em event.source.userId
quando adicionado como amigo (evento de acompanhamento) ou durante o bate-papo (evento de mensagem).
message
pode ser uma string, uma matriz de strings, um objeto Enviar mensagem ou uma matriz de objetos Enviar mensagem.
Envie mensagem push para vários usuários (máx.: 150 usuários). Isso é mais eficiente que push
, pois fará uma chamada de API apenas uma vez.
to
é uma matriz de userId.
message
pode ser uma string, uma matriz de strings, um objeto Enviar mensagem ou uma matriz de objetos Enviar mensagem.
Envie mensagem push para todos os usuários. Isso é mais eficiente que push
, pois fará uma chamada de API apenas uma vez.
message
pode ser uma string, uma matriz de strings, um objeto Enviar mensagem ou uma matriz de objetos Enviar mensagem.
Obtenha dados de imagem, vídeo e áudio enviados pelos usuários como um objeto Buffer.
Veja: Event.message.content()
Obtenha informações de perfil do usuário.
Veja: Event.source.profile()
Obtenha o perfil de usuário de um membro de um grupo.
Obtenha o userId de todos os membros de um grupo.
Veja: Event.source.member()
Saia de um grupo.
Obtenha o perfil de usuário de um membro em uma sala de chat.
Obtenha o userId de todos os membros em uma sala de chat.
Veja: Event.source.member()
Saia de um quarto.
Obtenha o número de usuários que adicionaram este linebot em ou antes de uma data especificada.
A data padrão é ontem (UTC+9).
Veja: Obtenha número de seguidores
Obtenha a cota de número de mensagens no mês atual.
Consulte: Obtenha o limite alvo para mensagens adicionais
Obtenha o número de mensagens que este linebot responde, envia por push, transmite ou faz multicast.
A data padrão é ontem (UTC+9).
Veja: Obtenha o número de mensagens de resposta enviadas
Fornece atalhos convenientes para chamar funções do LineBot que requerem parâmetros de um objeto de evento de origem.
Responda ao evento.
message
pode ser uma string, uma matriz de strings, um objeto Enviar mensagem ou uma matriz de objetos Enviar mensagem.
Retorne um objeto Promise do módulo node-fetch
.
Esta é uma abreviação para: 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'
} ]
} ]
}
} ) ;
Obtenha informações de perfil de usuário do remetente.
Esta é uma abreviatura para:
LineBot.getUserProfile(event.source.userId)
se for um chat 1:1LineBot.getGroupMemberProfile(event.source.groupId, event.source.userId)
se o bot estiver em um grupoLineBot.getRoomMemberProfile(event.source.roomId, event.source.userId)
se o bot estiver em uma sala de chat event . source . profile ( ) . then ( function ( profile ) {
event . reply ( 'Hello ' + profile . displayName ) ;
} ) ;
Obtenha o userId de todos os membros de um grupo ou sala de chat.
Esta é uma abreviatura para:
LineBot.getGroupMember(event.source.groupId)
se o bot estiver em um grupoLineBot.getRoomMember(event.source.roomId)
se o bot estiver em uma sala de chat event . source . member ( ) . then ( function ( member ) {
console . log ( member . memberIds ) ;
} ) ;
Obtenha dados de imagem, vídeo e áudio enviados pelos usuários como um objeto Buffer.
Este é um atalho para: LineBot.getMessageContent(event.message.messageId)
event . message . content ( ) . then ( function ( content ) {
console . log ( content . toString ( 'base64' ) ) ;
} ) ;
MIT