? SDK für die LINE Messaging API für Node.js
Weitere Informationen finden Sie in den offiziellen API-Dokumenten.
$ 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 ) ;
Weitere Beispiele finden Sie im examples
.
Erstellen Sie eine LineBot-Instanz mit der angegebenen Konfiguration.
var bot = linebot ( {
channelId : CHANNEL_ID ,
channelSecret : CHANNEL_SECRET ,
channelAccessToken : CHANNEL_ACCESS_TOKEN ,
verify : true // Verify 'X-Line-Signature' header (default=true)
} ) ;
Starten Sie den integrierten HTTP-Server am angegebenen port
und akzeptieren Sie den POST-Anforderungsrückruf am angegebenen webHookPath
.
Diese Methode wird der Einfachheit halber bereitgestellt. Sie können Ihren eigenen Server schreiben und verify
und parse
verwenden, um Webhook-Ereignisse zu verarbeiten. Siehe examples/echo-express-long.js
zum Beispiel.
Erstellen Sie die Express.js-Middleware, um die Anfrage zu analysieren.
Der Parser geht davon aus, dass der Anforderungstext noch nie zuvor von einem Textparser analysiert wurde, daher muss er VOR jedem generischen Textparser platziert werden, z. B. app.use(bodyParser.json());
Überprüfen Sie X-Line-Signature
Header.
Eingehende Webhook-Anfrage verarbeiten und ein Ereignis auslösen.
Wird ausgelöst, wenn ein Webhook-Ereignis empfangen wird.
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 ) { } ) ;
Auf eine Nachricht antworten.
Siehe: Event.reply(message)
Push-Nachricht senden.
to
ist eine Benutzer-ID oder ein Array von Benutzer-IDs. Eine Benutzer-ID kann aus event.source.userId
gespeichert werden, wenn sie als Freund (Folge-Ereignis) oder während des Chats (Nachrichten-Ereignis) hinzugefügt wird.
message
kann ein String, ein String-Array, ein Send-Message-Objekt oder ein Array von Send-Message-Objekten sein.
Senden Sie eine Push-Nachricht an mehrere Benutzer (maximal: 150 Benutzer). Dies ist effizienter als push
, da der API-Aufruf nur einmal erfolgt.
to
ist ein Array von Benutzer-IDs.
message
kann ein String, ein String-Array, ein Send-Message-Objekt oder ein Array von Send-Message-Objekten sein.
Push-Nachricht an alle Benutzer senden. Dies ist effizienter als push
, da der API-Aufruf nur einmal erfolgt.
message
kann ein String, ein String-Array, ein Send-Message-Objekt oder ein Array von Send-Message-Objekten sein.
Erhalten Sie von Benutzern gesendete Bild-, Video- und Audiodaten als Pufferobjekt.
Siehe: Event.message.content()
Rufen Sie Benutzerprofilinformationen des Benutzers ab.
Siehe: Event.source.profile()
Rufen Sie das Benutzerprofil eines Mitglieds in einer Gruppe ab.
Rufen Sie die Benutzer-ID aller Mitglieder einer Gruppe ab.
Siehe: Event.source.member()
Verlasse eine Gruppe.
Rufen Sie das Benutzerprofil eines Mitglieds in einem Chatroom ab.
Rufen Sie die Benutzer-ID aller Mitglieder in einem Chatroom ab.
Siehe: Event.source.member()
Verlasse einen Raum.
Rufen Sie die Anzahl der Benutzer ab, die diesen Linebot an oder vor einem bestimmten Datum hinzugefügt haben.
Das Standarddatum ist gestern (UTC+9).
Siehe: Anzahl der Follower abrufen
Rufen Sie die Anzahl der Nachrichtenkontingente im aktuellen Monat ab.
Siehe: Ziellimit für zusätzliche Nachrichten abrufen
Rufen Sie die Anzahl der Nachrichten ab, die dieser Linebot beantwortet, pusht, sendet oder multicastet.
Das Standarddatum ist gestern (UTC+9).
Siehe: Anzahl der gesendeten Antwortnachrichten abrufen
Stellen Sie praktische Abkürzungen bereit, um LineBot-Funktionen aufzurufen, die Parameter von einem Quellereignisobjekt erfordern.
Reagieren Sie auf das Ereignis.
message
kann ein String, ein String-Array, ein Send-Message-Objekt oder ein Array von Send-Message-Objekten sein.
Gibt ein Promise-Objekt vom node-fetch
-Modul zurück.
Dies ist eine Abkürzung für: 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'
} ]
} ]
}
} ) ;
Rufen Sie Benutzerprofilinformationen des Absenders ab.
Dies ist eine Abkürzung für:
LineBot.getUserProfile(event.source.userId)
wenn es sich um einen 1:1-Chat handeltLineBot.getGroupMemberProfile(event.source.groupId, event.source.userId)
wenn sich der Bot in einer Gruppe befindetLineBot.getRoomMemberProfile(event.source.roomId, event.source.userId)
wenn sich der Bot in einem Chatroom befindet event . source . profile ( ) . then ( function ( profile ) {
event . reply ( 'Hello ' + profile . displayName ) ;
} ) ;
Rufen Sie die Benutzer-ID aller Mitglieder einer Gruppe oder eines Chatrooms ab.
Dies ist eine Abkürzung für:
LineBot.getGroupMember(event.source.groupId)
wenn der Bot in einer Gruppe istLineBot.getRoomMember(event.source.roomId)
wenn sich der Bot in einem Chatroom befindet event . source . member ( ) . then ( function ( member ) {
console . log ( member . memberIds ) ;
} ) ;
Erhalten Sie von Benutzern gesendete Bild-, Video- und Audiodaten als Pufferobjekt.
Dies ist eine Abkürzung für: LineBot.getMessageContent(event.message.messageId)
event . message . content ( ) . then ( function ( content ) {
console . log ( content . toString ( 'base64' ) ) ;
} ) ;
MIT