Ciri "messenger bot" Facebook tidak ada yang baru, dan banyak bot hebat sudah ada. Walau bagaimanapun, sumber mengenai cara membina bot anda sendiri adalah terhad, dan kekurangan penjelasan untuk orang yang baru kepada API Graf Facebook. Bot Messenger sekarang juga memerlukan anda untuk menggunakan URL panggilan balik webhook yang dijamin SSL (lebih banyak pada kemudian), dan menubuhkan SSL bukan untuk semua orang, dan juga kos wang.
Dalam artikel ini, saya akan memandu anda melalui keseluruhan proses mewujudkan bot messenger Facebook yang mudah, kerana dokumentasi Facebook sendiri agak tidak dijelaskan. Kami akan menyediakan aplikasi awan yang menggunakan protokol https, kodkan bot dalam Node.js (iaitu javascript, bahasa sisi pelayan), menggunakan git untuk menolak kod ke aplikasi awan, dan mengujinya di Facebook Messenger.
Bot Persediaan
Anda akan memerlukan Node dipasang pada komputer riba anda. Jika tidak, pergi ke laman web Node untuk memuat turun dan memasangnya.
Sebaik sahaja anda selesai, anda boleh meneruskan persediaan untuk bot. Ikuti langkah-langkah di bawah:
1. Pelancaran Terminal.
2. Anda memerlukan direktori berasingan untuk memegang kod anda.
- Buat direktori baru
mkdir testbot
- Ubah direktori kerja anda ke direktori yang baru saja anda buat
cd testbot
3. Selanjutnya, mulakan aplikasi Node. npm init
- Anda akan diminta untuk memasukkan maklumat mengenai aplikasi anda, hanya gunakan lalai dengan menekan Enter untuk semuanya.
4. Pasang pakej npm install express body-parser request --save
- Perintah itu akan berjalan, dan memberi peringatan; abaikan mereka.
5. Di Finder, buka direktori " testbot " yang anda buat, dan cari fail bernama " package.json "; buka ini dalam editor seperti Teks Sublime.
6. Dalam fail ini, kita perlu menambah baris "start": "node index.js"
- Jangan lupa untuk menambahkan ", " pada akhir baris sebelumnya.
7. Seterusnya, buat fail baru dalam Teks Sublime, dan masukkan kod berikut di dalamnya:
[js]
var express = require ('express');
var bodyParser = require ('body-parser');
var request = require ('request');
var app = express ();
app.use (bodyParser.urlencoded ({extended: false}));
app.use (bodyParser.json ());
app.listen ((process.env.PORT || 3000));
app.get ('/', function (req, res) {
res.send ('Ini ialah TestBot Server');
});
app.get ('/ webhook', function (req, res) {
jika (req.query ['hub.verify_token'] === 'testbot_verify_token') {
res.send (req.query ['hub.challenge']);
} else {
res.send ('token sah pengesahan tidak sah');
}
});
[/ js]
Simpan fail ini sebagai index.js
Nota: Dalam Talian 13, nilai 'hub.verify_token' ditetapkan sebagai ' testbot_verify_token', ingat nilai ini kerana ia akan digunakan semasa membuat webhook di Facebook.
Buat Repositori Git
Sekarang kita telah menetapkan pengendalian panggilan balik bot kita, kita perlu menolak kod ke Heroku. Untuk itu, kita perlu membuat repositori git dalam direktori kami.
Nota: "git" adalah sistem kawalan versi untuk fail dan kod perisian. Anda boleh membaca lebih lanjut mengenainya di Wikipedia.
Membuat repositori git mudah, dan hanya mengambil beberapa arahan Terminal.
Nota: Pastikan anda berada di dalam direktori " testbot " di Terminal. Anda boleh melakukan ini dengan menaip perintah pwd
ke Terminal.
Ikuti langkah-langkah ini untuk membuat repositori git:
1. git init
2. git add .
3. git commit -m "Register Facebook Webhook"
Persediaan Heroku
Sebelum kita masuk ke halaman pemaju Facebook, kita memerlukan URL panggil balik yang boleh dibicarakan oleh Facebook. URL ini perlu menggunakan protokol https, yang bermaksud kita perlu memasang sijil SSL di laman web kami; tetapi, ini adalah panduan pemula untuk bot messenger Facebook, jadi janganlah merumitkan perkara. Kami akan menggunakan Heroku untuk menggunakan kod kami. Heroku memberikan anda https URL untuk aplikasi anda dan mempunyai pelan percuma yang memenuhi permintaan kami (sangat mendasar).
Pergi ke laman web Heroku dan daftar diri anda.
Nota: Dalam bidang yang mengatakan "Pilih Bahasa Utama Anda Utama", gunakan "Saya menggunakan Bahasa lain".
Sebaik sahaja anda selesai dengan itu, pasangkan toolkit Heroku untuk OS anda (Mac, bagi saya), dan pasangnya. Ini akan memberi anda akses kepada Heroku pada Terminal anda (atau arahan segera, pada Windows).
Seterusnya, kami akan membuat aplikasi di Heroku, yang akan memegang seluruh kod untuk bot kami. Ikuti langkah-langkah di bawah:
1. Pelancaran Terminal
2. Taipkan heroku login
- Anda akan diminta memasukkan e-mel dan kata laluan anda.
- Taipkan e-mel anda, tekan Enter; kemudian taip kata laluan anda, tekan Enter.
- Anda akan dilog masuk ke heroku
3. Taipkan heroku create
- Ini akan membuat aplikasi pada Heroku dan menyediakan anda dengan hyperlink. Perhatikan bahawa pautan menggunakan protokol https. Mudah, kan?
4. Sekarang anda boleh menolak kod aplikasimu ke Heroku git push heroku master
5. Setelah ini selesai, aplikasi anda pada dasarnya hidup, dan anda boleh melawat pautan di pelayar anda untuk memastikan semuanya berfungsi dengan baik. Ia harus membuka halaman web yang mengatakan " Ini adalah TestBot Server ".
Persediaan Facebook
Sudah tiba masanya untuk menyambung bot kami ke Facebook! Anda perlu membuat Halaman Facebook baru atau menggunakan yang sedia ada yang anda miliki. Saya akan menunjukkan kepada anda cara untuk meneruskan dengan membuat Halaman Facebook baru.
1. Pergi ke Facebook dan buat halaman baru.
- Anda boleh membuat halaman dalam mana-mana kategori yang anda mahukan. Saya memilih Syarikat / Organisasi, tanpa alasan tertentu.
2. Langkah seterusnya yang menunjukkan Facebook adalah pilihan, dan boleh dilangkau.
3. Seterusnya, pergi ke Laman Web Pemaju Facebook.
- Di bahagian atas kanan, tetapkan tetikus anda pada " Apl Saya " dan kemudian klik pada " Tambah Apl Baru " dari menu lungsur.
- Klik pada " persediaan asas " apabila Facebook meminta anda memilih platform.
4. Isikan butiran untuk Nama Apl dan alamat e-mel hubungan anda.
- Pilih " Apps for Pages " dalam Kategori.
- Klik pada " Buat ID Apl ".
5. Anda akan dibawa ke papan pemuka untuk apl anda. Di bar sisi, arahkan ke " + Tambah Produk " dan pilih " Messenger " dengan mengklik pada butang " Bermula ".
6. Pilih " Webhooks Persediaan ".
7. Isikan medan yang diperlukan, menggantikan "URL Panggil Balik" dengan URL apl Heroku, Benarkan Token dengan token yang digunakan dalam fail index.js, dan pilih Bidang Langganan yang berikut:
- message_deliveries
- mesej
- message_optins
- messaging_postbacks
Nota: Pastikan anda menambahkan " / webhook " ke URL Panggil balik supaya index.js melaksanakan fungsi yang diperlukan apabila Facebook cuba untuk memperlambat URL, ia dapat mengesahkan "Token Berkenifikasinya".
8. Klik pada " Sahkan dan Simpan ".
9. Dalam bahagian " Penjanaan Token ", klik pada " Pilih Halaman " dan pilih halaman yang anda buat sebelumnya.
Ini akan menghasilkan " Token Akses Halaman ", simpan di suatu tempat; anda akan memerlukannya kemudian.
10. Seterusnya, anda perlu membuat pertanyaan POST ke aplikasi anda, menggunakan Token Akses Halaman yang dihasilkan dalam langkah terakhir. Ini boleh dilakukan dengan mudah di Terminal. Jalankan arahan berikut, menggantikan PAGE_ACCESS_TOKEN dengan Token Akses Halaman yang anda hasilkan .
curl -X POST "//graph.facebook.com/v2.6/me/subscribed_apps?access_token=PAGE_ACCESS_TOKEN"
Anda harus menerima tindak balas " kejayaan " di Terminal.
Lebih banyak persediaan Heroku
Ya, kita belum selesai. Tidak hampir.
1. Pergi ke laman web Heroku dan log masuk dengan ID e-mel anda.
2. Cari aplikasi anda dalam "papan pemuka" dan klik padanya.
3. Navigasi ke tab Tetapan.
4. Klik pada " Reveal Config Vars "
5. Tambahkan PAGE_ACCESS_TOKEN sebagai " config var ", dan klik " Tambah ".
Mengekod Bot Sebenar
Sekarang bahawa kita telah selesai dengan kerja mengejut, kita boleh memberi tumpuan kepada perkara yang benar-benar penting: membuat bot bertindak balas terhadap mesej. Untuk bermula, kami hanya akan bentuk bot yang hanya menyuarakan mesej yang diterima. Ternyata, tugas mudah ini memerlukan sedikit kod untuk berfungsi.
1. Mengekodkan Pesanan Mesej
Sebelum bot dapat echo kembali mesej, ia perlu dapat mendengar mesej. Mari buat yang pertama.
Dalam fail index.js, tambahkan kod berikut:
[js]
app.post ('/ webhook', function (req, res) {
var events = req.body.entry [0] .messaging;
untuk (i = 0; i <events.length; i ++) {
var event = events [i];
jika (event.message && event.message.text) {
sendMessage (event.sender.id, {text: "Echo:" + event.message.text});
}
}
res.sendStatus (200);
});
[/ js]
Apakah fungsi ini, apakah ia memeriksa mesej yang diterima, dan kemudian menyemak jika ada teks dalam mesej tersebut. Jika ia mendapati teks dalam mesej yang diterima, ia memanggil fungsi sendMessage (ditunjukkan kemudian), meluluskan ID penghantar dan teks untuk dihantar semula. Penting untuk memahami nilai-nilai berikut dan maksudnya:
- event.message.text adalah teks yang diterima dalam mesej. Sebagai contoh, jika seseorang menghantar mesej "Hello" ke bot kami, nilai event.message.text akan menjadi "Hello".
- event.sender.id adalah id orang yang menghantar mesej ke bot. Ini diperlukan agar bot tahu siapa yang akan menangani tindak balas tersebut.
2. Mengekodkan fungsi sendMessage
Membolehkan kod fungsi "sendMessage", sekarang.
[js]
fungsi sendMessage (penerimaId, mesej) {
permintaan ({
url: '//graph.facebook.com/v2.6/me/messages',
qs: {access_token: process.env.PAGE_ACCESS_TOKEN},
kaedah: 'POST',
json: {
penerima: {id: recipientId},
mesej: mesej,
}
}, fungsi (ralat, tindak balas, badan) {
jika (ralat) {
console.log ('Ralat menghantar mesej:', ralat);
} lain jika (response.body.error) {
console.log ('Ralat:', response.body.error);
}
});
};
[/ js]
Fungsi "sendMessage" mengambil dua parameter:
- penerimaId
- mesej
Penerima adalah diperlukan supaya mesej tersebut dapat dialamatkan kepada pengguna yang betul.
Mesej adalah teks sebenar yang akan dihantar dalam respon.
3. Menolak Perubahan pada Heroku
Jika anda telah menyelesaikan langkah-langkah di atas, bot anda sepatutnya dapat echo kembali teks yang diterima. Tetapi pertama, anda perlu menolak perubahan kepada aplikasi yang dihoskan di Heroku. Untuk melakukan ini, ikuti langkah-langkah yang diberikan di bawah:
1. Pelancaran Terminal.
2. Tukar direktori ke direktori testbot anda
cb testbot
3. Lakukan langkah-langkah berikut:
- git add.
- Nota: Ada "." Di hujung "git tambah"
- git commit -m "Pertama komit"
- git push heroku master
4. Sekarang hantar mesej ke halaman anda, dan bot akan echo mesej itu kembali kepada anda.
Tanggungjawab Bersyarat aka Membuat Bot Lebih Pintar
Kita boleh menggunakan padanan teks untuk membolehkan bot messenger Facebook kami bertindak balas mengikut kata kunci khas tertentu.
Untuk mencapai matlamat ini, kita perlu menambah fungsi lain. Saya menamakannya "conditionalResponses", tetapi anda boleh memilih nama yang anda suka.
1. Mengekodkan fungsi Respon yang bersyarat
[js]
fungsi conditionalResponses (recipientId, text) {
teks = teks || "";
var what = text.match (/ what / gi); // periksa jika rentetan teks mengandungi perkataan "what"; mengabaikan kes
varGadget-Info.com = text.match (/ beebom / gi); // periksa jika rentetan teks mengandungi perkataan "beebom"; mengabaikan kes
var who = text.match (/ who / gi); // periksa jika rentetan teks mengandungi perkataan "siapa"; mengabaikan kes
var you = text.match (/ you / gi); // periksa jika rentetan teks mengandungi perkataan "you"; mengabaikan kes
// jika teks mengandungi kedua-dua "apa" dan "beebom", lakukan ini:
jika (apa! = null &&; Gadget-Info.com! = null) {
message = {
teks: "Beebom adalah laman web yang menawarkan sumber-sumber teknologi. Selamat datang."
}
sendMessage (penerimaId, mesej);
kembali benar;
}
// jika teks mengandungi kedua-dua "siapa" dan "anda", lakukan ini:
jika (yang! = null && you! = null) {
message = {
teks: "Saya telah diminta untuk tidak membincangkan identiti saya dalam talian."
}
sendMessage (penerimaId, mesej);
kembali benar;
}
/ / Jika tiada yang sepadan, kembali palsu untuk terus melaksanakan fungsi batin.
kembali palsu;
};
[/ js]
Dalam baris 4 hingga 7, kami telah menentukan pembolehubah bergantung pada padanan rentetan yang diterima terhadap kata-kata tertentu. Bahagian terbaik tentang menggunakan "text.match ()" ialah menggunakan Regular Expressions (biasanya disebut regex, baca lebih lanjut di sini.). Ia baik untuk kita, kerana ini bermakna bahawa walaupun sebahagian daripada perkataan dalam teks yang diterima sepadan dengan salah satu kata yang kita nyatakan dalam text.match (), pembolehubah tidak akan menjadi batal. Maksudnya, jika mesej yang diterima adalah "What's Beebom?", "Var what" dan "var beebom" tidak akan menjadi null, kerana perkataan "What's" mengandungi perkataan "what". Oleh itu, kami disimpan dari membuat pernyataan tambahan untuk setiap variasi di mana seseorang mungkin berkata "Apa".
2. Mengedit Pesanan Mesej
Kami juga perlu mengedit Pembaca Mesej yang kami kodkan, untuk memastikan ia cuba memadankan teks yang diterima dengan fungsi "conditionalResponses" juga.
[js]
app.post ('/ webhook', function (req, res) {
var events = req.body.entry [0] .messaging;
untuk (i = 0; i <events.length; i ++) {
var event = events [i];
jika (event.message && event.message.text) {
/ / Pertama cuba untuk memeriksa apakah mesej yang diterima memenuhi syarat untuk tindak balas bersyarat.
jika (! conditionalResponses (event.sender.id, event.message.text)) {
/ / Jika tidak, cukup echo mesej yang diterima kembali kepada penghantar.
sendMessage (event.sender.id, {text: "Echo:" + event.message.text});
}
}
}
res.sendStatus (200);
});
[/ js]
Perubahan pendengar mungkin tidak kelihatan sangat drastik, tetapi kesannya pasti. Sekarang, pendengar pertama kali cuba bertindak balas dengan tindak balas bersyarat, dan jika tidak ada keadaan yang sah untuk mesej yang diterima, ia hanya akan menyuarakan mesej itu kembali kepada pengguna.
3. Menolak Perubahan pada Heroku
Sebelum anda boleh mencuba ciri-ciri baru, anda perlu menolak kod dikemaskini pada aplikasi yang dihoskan di Heroku. Ikuti langkah-langkah di bawah untuk melakukan ini:
1. Pelancaran Terminal.
2. Tukar direktori ke direktori testbot anda
cb testbot
3. Lakukan langkah-langkah berikut:
- git add.
- Nota: Ada "." Di hujung "git tambah"
- git commit -m "Menambah keupayaan bersyarat"
- git push heroku master
4. Sekarang hantar mesej ke halaman anda, dan bot akan echo mesej itu kembali kepada anda.
Malah Lebih Fungsi
Bot kami kini memberi respons kepada satu set kecil arahan dalam respons yang bagus dan berstruktur. Tetapi ia masih tidak begitu berguna. Mari buat beberapa perubahan pada kod untuk membuat bot kami menjadi lebih " berfungsi " sekeping perisian. Kami akan mengubah banyak fungsi, dan menambah pasangan lagi, jadi teruja.
1. Mengedit Pesanan Mesej
Pendengar mesej kami, pada peringkat ini, berfungsi dengan baik. Walau bagaimanapun, ia tidak diformatkan dengan baik dan jika kami terus meningkatkan bersarang jika pernyataan untuk menambah " pemeriksaan keadaan " tambahan, ia akan cepat menjadi jelek untuk melihat, sukar difahami dan perlahan pada pelaksanaan. Kami tidak mahu itu, sekarang, adakah kami? Mari buat beberapa perubahan.
Nota: Terdapat satu baris kod dalam pendengar mesej yang berbunyi "res.sendStatus (200)", baris ini menghantar status 200 kod ke Facebook, mengatakan bahawa fungsi itu berjaya dilaksanakan. Menurut dokumentasi Facebook, Facebook menunggu maksimal 20 saat untuk menerima status 200, sebelum memutuskan bahawa mesej itu tidak berjalan dan berhenti melaksanakan kod.
Pendengar mesej baru kami kelihatan seperti ini. Kami menggunakan perintah " res.sendStatus (200) " untuk menghentikan pelaksanaan fungsi sebaik sahaja keadaan dipadankan dan dilaksanakan.
[js]
app.post ('/ webhook', function (req, res) {
var events = req.body.entry [0] .messaging;
untuk (i = 0; i <events.length; i ++) {
var event = events [i];
jika (event.message && event.message.text) {
// terlebih dahulu menyemak teks mesej terhadap keadaan introResponse
jika (introResponse (event.sender.id, event.message.text)) {
res.sendStatus (200);
}
// untuk kekurangan nama yang lebih baik, saya memanggil respons baru ini: p; semak ini seterusnya
lain jika (newResponse (event.sender.id, event.message.text)) {
res.sendStatus (200);
}
// lain, gema kembali mesej asal
lain {
// menggantikan echo dengan senarai arahan yang sah
sendMessage (event.sender.id, {text: "Echo:" + event.message.text});
}
}
}
res.sendStatus (200);
});
[/ js]
2. Mengekodkan FungsiResponsan baru
Pendengar mesej kami kini menyemak teks mesej terhadap satu set syarat dalam "newResponse" juga, tetapi pertama, kita perlu kod fungsi baruResponse. Kami akan menggunakan fungsi ini untuk memeriksa jika pengguna meminta cadangan artikel dariGadget-Info.comwebsite, cari istilah pertanyaan di laman web, dan tunjukkan pautan kepada pengguna. Sekali lagi, kami akan menggunakan ungkapan biasa untuk menyesuaikan teks dengan kata kunci tertentu.
[js]
fungsi newResponse (penerimaId, teks) {
teks = teks || "";
var suggest = text.match (/ suggest / gi);
var random = text.match (/ random / gi);
var article = text.match (/ article / gi);
var iphone = text.match (/ iphone / gi);
var android = text.match (/ android / gi);
var mac = text.match (/ mac / gi);
var browser = text.match (/ browser / gi);
var vpn = text.match (/ vpn / gi);
// semak apakah pengguna meminta cadangan artikel sama sekali
jika (mencadangkan! = null && artikel! = null) {
var query = "";
// jika saran artikel ditanyakan, semak topik yang dicari pengguna
jika (android! = null) {
query = "Android";
} lain jika (mac! = null) {
query = "Mac";
} lain jika (iphone! = null) {
query = "iPhone";
} lain jika (browser! = null) {
query = "Browser";
} lain jika (vpn! = null) {
query = "VPN";
}
sendButtonMessage (recipientId, query);
kembali benar
}
kembali palsu;
};
[/ js]
Kami menggunakan fungsi lain yang dipanggil "sendButtonMessage" untuk menghantar mesej sekiranya pengguna meminta cadangan artikel. Kami akan buat ini seterusnya.
3. Mengekodkan fungsi sendButtonMessage
Fungsi sendButtonMessage mengambil dua parameter, ID penerima dan pertanyaan. ID penerima digunakan untuk mengenal pasti pengguna yang harus dihantar mesej, dan pertanyaan itu digunakan untuk mengenal pasti topik di mana pengguna ingin cadangan artikel.
[js]
fungsi sendButtonMessage (recipientId, query) {
var messageData = {
penerima: {
id: recipientId
},
mesej: {
lampiran: {
taip: "templat",
muatan: {
template_type: "butang",
teks: "Inilah yang saya cari untuk" + pertanyaan,
butang: [
taip: "web_url",
url: "//www.beebom.com/?s="+query,
tajuk: "Beebom:" + pertanyaan
}]
}
}
}
};
callSendAPI (messageData);
}
[/ js]
Sekali lagi, kami menggunakan fungsi tersuai; kali ini untuk menghantar mesej akhir, dengan pautan artikel, kepada pengguna. Fungsi ini, dalam banyak cara, mirip dengan fungsi "sendMessage" yang kami kodkan sebelumnya, tetapi lebih generik dengan cara mengambil data mesej, yang sesuai dengan kami, kerana data mesej kami berubah dengan pertanyaan yang dibuat oleh pengguna.
4. Mengekod fungsi panggilanSendAPI
Fungsi "callSendAPI" mengambil satu parameter, iaitu "messageData" . Parameter ini mengandungi keseluruhan data mesej, diformat dengan betul mengikut peraturan Facebook, supaya utusan itu boleh memaparkannya dengan betul kepada pengguna.
[js]
fungsi callSendAPI (messageData) {
permintaan ({
uri: '//graph.facebook.com/v2.6/me/messages',
qs: {access_token: process.env.PAGE_ACCESS_TOKEN},
kaedah: 'POST',
json: messageData
}, fungsi (ralat, tindak balas, badan) {
jika (! ralat && response.statusCode == 200) {
var recipientId = body.recipient_id;
var messageId = body.message_id;
console.log ("Berhasil menghantar mesej generik dengan id% s ke penerima% s",
messageId, recipientId);
} else {
console.error ("Tidak dapat menghantar mesej.");
console.error (tindak balas);
console.error (ralat);
}
});
}
[/ js]
5. Menolak Perubahan pada Heroku
Kami berada di peringkat akhir untuk menjadikan bot dinaik taraf kami hidup. Kami hanya perlu menolak semua perubahan kod ke Heroku. Prosesnya adalah sama seperti dahulu, dan digariskan di bawah:
1. Pelancaran Terminal.
2. Tukar direktori ke direktori testbot .
cb testbot
3. Lakukan yang berikut:
- git add.
- Nota: Terdapat "." Pada akhir arahan itu.
- git commit -m "memperbaiki keadaan cek dan pemformatan"
- git push heroku master
4. Sekarang hantar mesej seperti "Cadangkan artikel di Android", atau "Beebom, cadangkan saya sebarang artikel mengenai topik Android"; dan bot akan menghantar mesej yang diformatkan dengan baik dengan pautan yang boleh anda sentuh untuk membuka artikel yang berkaitan dengan pertanyaan anda.
Dig Deeper
Kini, anda tahu bagaimana untuk memulakan dengan mengembangkan bots messenger Facebook, melalui dokumentasi Facebook tentang cara mengembangkan bots messenger Facebook. Walaupun dokumentasi tidak baik untuk pemula, anda bukan pemula lagi. Anda perlu menyemak dokumentasi rasmi dan cuba mencari cara membuat bot anda lebih bijak. Teaser: Anda boleh menghantar mesej dengan imej dan butang juga! Ia juga mungkin untuk menggunakan perkhidmatan seperti Wit.ai dan Api.ai untuk mengod bot anda dan kemudian mengintegrasikannya dengan Facebook, tetapi dalam cubaan saya untuk menggunakan perkhidmatan tersebut, Wit.ai tidak berfungsi dengan baik, dan Api.ai mempunyai keluk pembelajaran yang tajam untuk pemula.
Pernahkah anda membangunkan bot messenger Facebook? Sekiranya anda mempunyai, bagaimanakah anda membinanya, dan apa yang boleh dilakukannya? Adakah anda menggunakan perkhidmatan seperti Wit.ai dan Api.ai untuk membuat bot anda? Sekiranya anda tidak pernah cuba mengepos bot, pergi dan buat bot messenger Facebook anda sendiri, menjadikannya lebih pintar dan lebih baik, dan beritahu kami tentang pengalaman anda dalam komen di bawah.