? SDK untuk LINE Messaging API untuk Node.js
Silakan merujuk ke dokumen API resmi untuk detailnya.
$ 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 ) ;
Lihat folder examples
untuk contoh lainnya.
Buat instance LineBot dengan konfigurasi yang ditentukan.
var bot = linebot ( {
channelId : CHANNEL_ID ,
channelSecret : CHANNEL_SECRET ,
channelAccessToken : CHANNEL_ACCESS_TOKEN ,
verify : true // Verify 'X-Line-Signature' header (default=true)
} ) ;
Mulai server http bawaan pada port
yang ditentukan, dan terima panggilan balik permintaan POST pada webHookPath
yang ditentukan.
Metode ini disediakan untuk kenyamanan. Anda dapat menulis server Anda sendiri dan menggunakan metode verify
dan parse
untuk memproses peristiwa webhook. Lihat examples/echo-express-long.js
misalnya.
Buat middleware Express.js untuk mengurai permintaan.
Pengurai mengasumsikan bahwa isi permintaan belum pernah diurai oleh pengurai isi mana pun sebelumnya, sehingga harus ditempatkan SEBELUM pengurai isi umum apa pun, misalnya app.use(bodyParser.json());
Verifikasi header X-Line-Signature
.
Memproses permintaan webhook yang masuk, dan memunculkan acara.
Dimunculkan saat acara Webhook diterima.
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 ) { } ) ;
Balas pesan.
Lihat: Acara.balas(pesan)
Kirim pesan dorong.
to
adalah userId, atau array userId. UserId dapat disimpan dari event.source.userId
saat ditambahkan sebagai teman (ikuti acara), atau selama obrolan (acara pesan).
message
dapat berupa string, array string, objek Kirim pesan, atau array objek Kirim pesan.
Kirim pesan push ke banyak pengguna (Maks: 150 pengguna). Ini lebih efisien daripada push
karena hanya akan membuat panggilan api sekali.
to
adalah array dari userId.
message
dapat berupa string, array string, objek Kirim pesan, atau array objek Kirim pesan.
Kirim pesan push ke semua pengguna. Ini lebih efisien daripada push
karena hanya akan membuat panggilan api sekali.
message
dapat berupa string, array string, objek Kirim pesan, atau array objek Kirim pesan.
Dapatkan data gambar, video, dan audio yang dikirim oleh pengguna sebagai objek Buffer.
Lihat: Acara.pesan.konten()
Dapatkan informasi profil pengguna pengguna.
Lihat: Acara.sumber.profil()
Dapatkan profil pengguna anggota dalam grup.
Dapatkan userId dari semua anggota dalam grup.
Lihat: Acara.sumber.anggota()
Keluar dari grup.
Dapatkan profil pengguna anggota di ruang obrolan.
Dapatkan userId semua anggota di ruang obrolan.
Lihat: Acara.sumber.anggota()
Tinggalkan ruangan.
Dapatkan jumlah pengguna yang telah menambahkan linebot ini pada atau sebelum tanggal yang ditentukan.
Tanggal defaultnya adalah kemarin (UTC+9).
Lihat: Dapatkan jumlah pengikut
Dapatkan jumlah kuota pesan pada bulan ini.
Lihat: Dapatkan batas target untuk pesan tambahan
Dapatkan jumlah pesan yang dibalas, dikirim, disiarkan, atau multicast oleh linebot ini.
Tanggal defaultnya adalah kemarin (UTC+9).
Lihat: Dapatkan jumlah pesan balasan yang dikirim
Berikan singkatan yang mudah digunakan untuk memanggil fungsi LineBot yang memerlukan parameter dari objek peristiwa sumber.
Menanggapi acara tersebut.
message
dapat berupa string, array string, objek Kirim pesan, atau array objek Kirim pesan.
Mengembalikan objek Promise dari modul node-fetch
.
Ini adalah singkatan dari: 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'
} ]
} ]
}
} ) ;
Dapatkan informasi profil pengguna pengirim.
Ini adalah singkatan dari:
LineBot.getUserProfile(event.source.userId)
jika obrolan 1:1LineBot.getGroupMemberProfile(event.source.groupId, event.source.userId)
jika bot ada dalam grupLineBot.getRoomMemberProfile(event.source.roomId, event.source.userId)
jika bot ada di ruang obrolan event . source . profile ( ) . then ( function ( profile ) {
event . reply ( 'Hello ' + profile . displayName ) ;
} ) ;
Dapatkan userId semua anggota di grup atau ruang obrolan.
Ini adalah singkatan dari:
LineBot.getGroupMember(event.source.groupId)
jika bot berada dalam grupLineBot.getRoomMember(event.source.roomId)
jika bot ada di ruang obrolan event . source . member ( ) . then ( function ( member ) {
console . log ( member . memberIds ) ;
} ) ;
Dapatkan data gambar, video, dan audio yang dikirim oleh pengguna sebagai objek Buffer.
Ini adalah singkatan dari: LineBot.getMessageContent(event.message.messageId)
event . message . content ( ) . then ( function ( content ) {
console . log ( content . toString ( 'base64' ) ) ;
} ) ;
MIT