FB-BotMill ได้รับการออกแบบมาเพื่อทำให้กระบวนการพัฒนา ออกแบบ และใช้งานบอทที่มีอยู่ใน Facebook ง่ายขึ้น
โดยมี Java API เชิงความหมายที่สามารถนำเข้าบน Java EE Project ของคุณเพื่อส่งและรับข้อความจาก Facebook เพื่อให้นักพัฒนาสามารถมุ่งเน้นไปที่การพัฒนาแอปพลิเคชันจริงแทนการจัดการกับตำแหน่งข้อมูล Facebook API
<dependency>
<groupId>co.aurasphere.botmill</groupId>
<artifactId>fb-botmill</artifactId>
<version>2.0.0-RC3</version>
</dependency>
เกรเดิล
compile 'co.aurasphere.botmill:fb-botmill:2.0.0-RC3'
เก๋
@Grapes(
@Grab(group='co.aurasphere.botmill', module='fb-botmill', version='2.0.0-RC3')
)
วิธีอื่นๆ ในการนำเข้า โปรดไปที่ไซต์ Repo ส่วนกลางของ 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 >
จดบันทึก การแมป URL เนื่องจากจะใช้กับการกำหนดค่าเว็บฮุคของคุณใน Facebook
ที่ 1: ตั้งค่าโทเค็นหน้าและโทเค็นการตรวจสอบ สร้างไฟล์ botmill.properties ใน classpath ของคุณและเพิ่มโทเค็นของคุณ
fb.page.token =<PAGE_TOKEN>
fb.validation.token =<VALIDATION_TOKEN>
โปรดทราบว่าคุณสามารถเข้ารหัสไฟล์คุณสมบัติได้โดยใช้การเข้ารหัสแบบ jaspyt ในตัวของเรา ไปที่ Wiki ของเราที่นี่เพื่อดูวิธีตั้งค่าไฟล์ botmill.properties ที่เข้ารหัสของคุณ
ประการที่ 2: ตั้งค่าคลาสการเข้ารหัสของคุณ เราผลักดันการใช้ Jaspyt เพื่อเข้ารหัสโทเค็นอย่างเคร่งครัด ด้วยเหตุนี้ เราจึงต้องแน่ใจว่าคุณสร้างคลาส Jaspyt Encryption ของคุณเอง เมื่อต้องการทำเช่นนี้ ให้สร้างสิ่งต่อไปนี้ในโครงการของคุณ
@ BotEncryption
public class DefaultEncryption {
public DefaultEncryption () {
StandardPBEStringEncryptor enc = new StandardPBEStringEncryptor ();
enc . setPassword ( "password" ); // can be sourced out
ConfigurationUtils . loadEncryptedConfigurationFile ( enc , "botmill.properties" );
}
}
รหัสผ่านนั้นขึ้นอยู่กับคุณและสามารถหาได้จากทุกที่ (ผ่าน https หรือ ftp) สิ่งสำคัญที่นี่คือข้อความนี้คือสิ่งที่ Jaspyt ใช้เพื่อถอดรหัสไฟล์ botmill.properties ของคุณ
...
enc . setPassword ( "https://mydomain.com/encryptionpassword/password.txt" ); // can be sourced out
..
เมื่อคุณทำสิ่งนี้เสร็จแล้ว เราจำเป็นต้องใช้โปรเจ็กต์ botmill-crypto-util เพื่อสร้างโทเค็นเพจและโทเค็นการตรวจสอบในเวอร์ชันที่เข้ารหัส ดาวน์โหลด botmill-crypto-util [ที่นี่] (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) และรันคำสั่งต่อไปนี้:
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 enc <validation_token>
นี่จะเป็นการคายไฟล์ข้อความเวอร์ชันที่เข้ารหัสของคุณออกมา แก้ไข botmill.properties ของคุณด้วยค่าเหล่านี้ แต่อย่าลืมใส่ไว้ใน ENC(***)
fb.page.token =ENC(<ENCRYPTED_PAGE_TOKEN>)
fb.validation.token =ENC(<ENCRYPTED_VALIDATION_TOKEN>)
ปรับใช้อีกครั้งและคุณก็พร้อมแล้ว
อันดับที่ 3: ตั้งค่า BotConfiguration ของคุณ คลาส BotConfiguration จะดูแลกระบวนการที่เกิดขึ้นครั้งเดียวที่ต้องเกิดขึ้น (เมนูถาวร การตรวจสอบสิทธิ์ Facebook API ฯลฯ) สร้าง FbBotConfiguration ด้านล่างและใส่การกำหนดค่าเริ่มต้นทั้งหมดของคุณ (การกำหนดค่าครั้งเดียว) บน Constructor นี่จะเป็นการเริ่มต้นการรับรองความถูกต้องของ 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 );
}
}
ขั้นตอนที่ 4: ตั้งค่าคลาส/คลาส FbBot กรอบงานของเราทำให้การกำหนดพฤติกรรมของบอท Facebook เป็นเรื่องง่ายและตรงไปตรงมาโดยการแท็กคลาสเป็นวัตถุพฤติกรรม
@ 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" ));
}
}
จับรูปแบบและตอบกลับด้วยการตอบกลับอย่างรวดเร็ว
@ 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 );
}
});
}
หรือตอบสนองด้วยการกดปุ่ม
@ 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 );
}
});
}
ไปที่เอกสารของเราเพื่อดูรายการ EventTypes และการตอบกลับทั้งหมด
องค์ประกอบสำคัญในการสร้าง ChatBot ของคุณ
ลิขสิทธิ์ (c) 2016-2017 BotMill.io