FB-BotMill dirancang untuk memudahkan proses pengembangan, perancangan dan menjalankan bot yang ada di dalam Facebook.
Ini menyediakan Java API semantik yang dapat diimpor ke Proyek Java EE Anda untuk mengirim dan menerima pesan dari Facebook sehingga pengembang dapat fokus pada pengembangan aplikasi sebenarnya daripada berurusan dengan titik akhir API Facebook.
<dependency>
<groupId>co.aurasphere.botmill</groupId>
<artifactId>fb-botmill</artifactId>
<version>2.0.0-RC3</version>
</dependency>
Gradle
compile 'co.aurasphere.botmill:fb-botmill:2.0.0-RC3'
asyik
@Grapes(
@Grab(group='co.aurasphere.botmill', module='fb-botmill', version='2.0.0-RC3')
)
Cara lain untuk mengimpor, kunjungi situs repo pusat Maven
< servlet >
< servlet-name >myFbBot</ servlet-name >
< servlet-class >co.aurasphere.botmill.fb.FbBotMillServlet</ servlet-class >
</ servlet >
< servlet-mapping >
< servlet-name >myFbBot</ servlet-name >
< url-pattern >/myFbBot</ url-pattern >
</ servlet-mapping >
Catat pemetaan url karena ini akan digunakan pada konfigurasi webhook Anda di Facebook.
Pertama: Siapkan token halaman dan token validasi. Buat file botmill.properties di classpath Anda dan tambahkan token Anda.
fb.page.token =<PAGE_TOKEN>
fb.validation.token =<VALIDATION_TOKEN>
Perhatikan bahwa Anda dapat mengenkripsi file properti menggunakan enkripsi berbasis jaspyt bawaan kami. Kunjungi Wiki kami di sini tentang cara menyiapkan file botmill.properties terenkripsi Anda.
Kedua: Siapkan kelas Enkripsi Anda. Kami sangat mendorong penggunaan Jaspyt untuk mengenkripsi token, untuk ini, kami perlu memastikan Anda membuat kelas Enkripsi Jaspyt Anda sendiri. Untuk melakukan ini, buat yang berikut ini di proyek Anda.
@ BotEncryption
public class DefaultEncryption {
public DefaultEncryption () {
StandardPBEStringEncryptor enc = new StandardPBEStringEncryptor ();
enc . setPassword ( "password" ); // can be sourced out
ConfigurationUtils . loadEncryptedConfigurationFile ( enc , "botmill.properties" );
}
}
Kata sandi terserah Anda dan dapat diambil dari mana saja (melalui https atau ftp). Kuncinya di sini adalah teks inilah yang akan digunakan Jaspyt untuk mendekripsi file botmill.properties Anda.
...
enc . setPassword ( "https://mydomain.com/encryptionpassword/password.txt" ); // can be sourced out
..
Setelah Anda selesai melakukannya, kami perlu menggunakan proyek botmill-crypto-util untuk membuat versi terenkripsi dari token halaman dan token validasi Anda. Unduh botmill-crypto-util [di sini] (https://oss.sonatype.org/content/repositories/snapshots/co/aurasphere/botmill/botmill-crypto-util/0.0.1-SNAPSHOT/botmill-crypto-util -0.0.1-20170228.035750-1-jar-with-dependencies.jar) dan jalankan perintah berikut:
java -jar botmill-crypto-util-0.0.1-20170228.035750-1-jar-with-dependencies.jar enc <page_token> java -jar botmill-crypto-util-0.0.1-20170228.035750-1-jar-with-dependencies .jar dan <validasi_token>
Ini akan mengeluarkan versi terenkripsi dari file teks Anda. Ubah properti botmill.properties Anda dengan nilai-nilai ini tetapi pastikan untuk memasukkannya ke dalam ENC(***)
fb.page.token =ENC(<ENCRYPTED_PAGE_TOKEN>)
fb.validation.token =ENC(<ENCRYPTED_VALIDATION_TOKEN>)
Terapkan ulang dan Anda siap berangkat.
Ketiga: Siapkan BotConfiguration Anda Kelas BotConfiguration akan menangani proses satu kali yang perlu terjadi (menu persisten, otentikasi api facebook, dll). Buat FbBotConfiguration di bawah dan letakkan semua konfigurasi awal Anda (konfigurasi satu kali) pada konstruktor. Ini juga akan menginisialisasi otentikasi fb.
@ BotConfiguration
public class MyBotConfiguration extends FbBotConfiguration {
public MyBotConfiguration () {
MessengerProfileApi . setGetStartedButton ( "get_started" );
MessengerProfileApi . setGreetingMessage ( "Hello!" );
List < PersistentMenu > persistentMenus = new ArrayList < PersistentMenu >();
PersistentMenu persistentMenu = new PersistentMenu ( "default" , false );
persistentMenu . addCallToAction ( ButtonFactory . createPostbackButton ( "Menu 1" , "menu1" ));
persistentMenu . addCallToAction ( ButtonFactory . createPostbackButton ( "Menu 2" , "menu2" ));
CallToActionNested theNestedMenu = new CallToActionNested ( "Menu 3 Nested" );
theServices . addCallToActionButton ( ButtonFactory . createPostbackButton ( "Nested1" , "nested1" ));
theServices . addCallToActionButton ( ButtonFactory . createPostbackButton ( "Nested2" , "nested2" ));
theServices . addCallToActionButton ( ButtonFactory . createPostbackButton ( "Nested3" , "nested3" ));
persistentMenu . addCallToAction ( theNestedMenu );
persistentMenus . add ( persistentMenu );
MessengerProfileApi . setPersistentMenus ( persistentMenus );
HomeUrl homeUrl = new HomeUrl ();
homeUrl . setInTest ( true );
homeUrl . setUrl ( "https://extensionlink.co" );
homeUrl . setWebviewHeightRatio ( WebViewHeightRatioType . TALL );
homeUrl . setWebviewShareButton ( WebViewShareButton . SHOW );
MessengerProfileApi . setHomeUrl ( homeUrl );
}
}
ke-4: Siapkan Kelas/Kelas FbBot. Kerangka kerja kami mempermudah dan menjelaskan Perilaku Bot Facebook dengan menandai kelas sebagai objek perilaku.
@ Bot
public class MyBotClass extends FbBot {
@ FbBotMillController ( eventType = FbBotMillEventType . MESSAGE , text = "Hi" , caseSensitive = true )
public void sendMessage ( MessageEnvelope envelope ) {
reply ( new MessageAutoReply ( "Hello World!" ));
}
}
@ Bot ( state = BotBeanState . PROTOTYPE ) // creates a new instance per call
public class MyBotClass1 extends FbBot {
@ FbBotMillController ( eventType = FbBotMillEventType . MESSAGE , text = "Hi" , caseSensitive = true )
public void sendMessage ( MessageEnvelope envelope ) {
reply ( new MessageAutoReply ( "Hello World on BotClass1" ));
}
}
@ Bot ( state = BotBeanState . SINGLETON ) // uses the same reference/instance (this is the default).
public class MyBotClass2 extends FbBot {
@ FbBotMillController ( eventType = FbBotMillEventType . MESSAGE , text = "Hi" , caseSensitive = true )
public void sendMessage ( MessageEnvelope envelope ) {
reply ( new MessageAutoReply ( "Hello World on BotClass2" ));
}
}
tangkap polanya dan tanggapi dengan balasan cepat
@ FbBotMillController ( eventType = FbBotMillEventType . MESSAGE_PATTERN , pattern = "(?i:hi)|(?i:hello)|(?i:hey)|(?i:good day)|(?i:home)" )
public void replyWithQuickReply ( MessageEnvelope envelope ) {
reply ( new AutoReply () {
@ Override
public FbBotMillResponse createResponse ( MessageEnvelope envelope ) {
return ReplyFactory . addTextMessageOnly ( "Text message with quick replies" )
. addQuickReply ( "Quick reply 1" , "Payload for quick reply 1" ). build ( envelope );
}
});
}
atau tanggapi dengan tombol
@ FbBotMillController ( eventType = FbBotMillEventType . MESSAGE_PATTERN , pattern = "(?i:hi)|(?i:hello)|(?i:hey)|(?i:good day)|(?i:home)" )
public void replyWithButtonTemplate ( MessageEnvelope envelope ) {
reply ( new AutoReply () {
@ Override
public FbBotMillResponse createResponse ( MessageEnvelope envelope ) {
return ReplyFactory . addButtonTemplate ( "Test button template" )
. addPostbackButton ( "postback button" , "postback button payload" )
. addPhoneNumberButton ( "phone number button" , "+123456789" )
. addUrlButton ( "web url button" , "https://github.com/BotMill/fb-botmill" ). build ( envelope );
}
});
}
Kunjungi dokumen kami untuk daftar lengkap EventTypes dan Respons.
Komponen kunci dalam membangun ChatBot Anda
Hak Cipta (c) 2016-2017 BotMill.io