تم تصميم FB-BotMill لتسهيل عملية تطوير وتصميم وتشغيل الروبوتات الموجودة داخل فيسبوك.
فهو يوفر واجهة برمجة تطبيقات Java دلالية يمكن استيرادها إلى مشروع Java EE الخاص بك لإرسال واستقبال الرسائل من 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')
)
طرق أخرى للاستيراد، تفضل بزيارة موقع 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 حيث سيتم استخدامه في تكوين webhook الخاص بك في Facebook.
أولاً: إعداد رمز الصفحة ورمز التحقق. أنشئ ملف botmill.properties في مسار الفصل الخاص بك وأضف الرموز المميزة الخاصة بك.
fb.page.token =<PAGE_TOKEN>
fb.validation.token =<VALIDATION_TOKEN>
لاحظ أنه يمكنك تشفير ملف الخصائص باستخدام التشفير المدمج القائم على jaspyt. انتقل إلى Wiki الخاص بنا هنا للتعرف على كيفية إعداد ملف botmill.properties المشفر الخاص بك.
ثانيًا: قم بإعداد فئة التشفير الخاصة بك. نحن نشجع بشدة على استخدام 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-dependeency.jar) و قم بتشغيل الأمر التالي:
java -jar botmill-crypto-util-0.0.1-20170228.035750-1-jar-with-dependeency.jar enc <page_token> java -jar botmill-crypto-util-0.0.1-20170228.035750-1-jar-with-dependeency .jar enc <validation_token>
سيؤدي هذا إلى إخراج النسخة المشفرة من ملفك النصي. قم بتعديل خصائص botmill.properties الخاصة بك باستخدام هذه القيم ولكن تأكد من وضعها داخل ENC(***)
fb.page.token =ENC(<ENCRYPTED_PAGE_TOKEN>)
fb.validation.token =ENC(<ENCRYPTED_VALIDATION_TOKEN>)
أعد النشر وستكون جاهزًا للانطلاق.
ثالثًا: إعداد BotConfiguration الخاص بك ستهتم فئة BotConfiguration بالعمليات التي يجب إجراؤها لمرة واحدة (القوائم المستمرة، ومصادقة facebook api، وما إلى ذلك). قم بإنشاء FbBotConfiguration أدناه ووضع كل التكوين الأولي الخاص بك (التكوين لمرة واحدة) على المُنشئ. سيؤدي هذا أيضًا إلى تهيئة مصادقة 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 );
}
}
رابعًا: إعداد فئة/فئات FbBot. يجعل إطار العمل الخاص بنا من السهل والمباشر تحديد سلوك Facebook Bot عن طريق وضع علامة على الفئات ككائنات سلوكية.
@ 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 );
}
});
}
قم بزيارة مستنداتنا للحصول على قائمة كاملة بأنواع الأحداث والاستجابة.
المكونات الرئيسية في بناء ChatBot الخاص بك
حقوق الطبع والنشر (ج) 2016-2017 BotMill.io