CEYD-A için Sohbet Botu Yazalım
CEYD platformu, 2 farklı çalışma yapısına sahiptir:
1) Android cihaz arayüzünü kullanan ve cihaz üzerinde derlenip çalışan Android sürümü. Başka deyişle, CEYD-A Android uygulaması üzerinde çalışan mimari
2) Web servis hizmeti veren, ana sunucuda derlenip çalışan değişik istemci platformlara, CEYD-A dışındaki uygulamalara destek veren Web sürümü
Bu yazıda Android sürümü için Sohbet Botu yazmayı öğreneceğiz. Yazılan kodlar Web sürümüne de yansıyacak ve çalışacaktır. Ancak web platformu için doğası itibariyle cmdinputbox komutu yerine cmdaskandfollow komutunun kullanımı gerekecektir. cmdinputbox çalışmayı keserek sizden cevap bekleme aşamasına geçmektedir. Web sürümünde bu şekilde bir yaklaşımın zorlukları nedeniyle cmdaskandfollow ile bekleme yapmadan verilecek cevabın sonraki komuta by pass edilmesi sağlanmaktadır.
Aşağıdaki örnekte Yazıcıdan çıktı alamıyorum denildiğinde sizi sorular ve seçeneklerle yönlendiren küçük bir yardım modülünü bulabilirsiniz. Komutları http://ceyd-a.net/kodyaz sayfasından girebilmek mümkün. Girilen komutlar aynı kullanıcı isimli cihaz(lar)ınıza otomatik olarak yüklenmektedir.
Her bir komut zinciri için komut ekle seçeneği seçilerek SORU,SORU ŞABLONU ve CEVAP alanları doldurulmalıdır.
cmdinputbox komutu ile arayüzden bilgi girişi beklenmektedir. Bu bilgi sesli olarak veya klavye üzerinden giriş yapılarak da sağlanabilir. Bilgi inputbox komutunun sonucu olarak dönmektedir. Android mimarisi için kullanılır.
Web mimarisinde bu komut yerine cmdaskandfollow kullanılmaktadır.
1 2 3 4 5 |
SORU:soğuk SABLON:{BAŞ}soğuk mu{SON} CEVAP:{!RET cmdaskandfollow hangi ilçeyi sordunuz ?,(.*) hava kaç derece!} |
cmdmessageboxcallback ile ekrana buton seçeneği eklenmektedir. Son parametresi ise üzerine basıldığında çalıştırılacak olan komuttur.
cmdloadurl ile bir site sayfasının içeriğini okuyabilir veya burada kullanıldığı gibi parametre gönderimi yapabilirsiniz.
CEYD platformunda bir komut içinde tanımlanan değişkenler cihaz içinde global tanımlıdır. Tanımlanan bu değişkenlerin içeriği başka bir komutta da kullanılabilir. Örneğin setprinter komutunda tanımladığımız $printername değişkeni en son aşamadaki komutta da kullanılabilir. Bu da komutlar arası etkileşimi kolaylaştırmaktadır.
1 2 3 4 5 6 7 8 9 10 |
SORU:yazıcı* SABLON:{BAŞ}çıktı al{HER} CEVAP: Yazıcınızın markası nedir? Uygun olan modeli seçebilir misiniz? {!RET cmdmessageboxcallback 2,red,Samsung,,RET setprinter samsung!} {!RET cmdmessageboxcallback 3,blue,Lexmark,,RET setprinter Lexmark!} {!RET cmdmessageboxcallback 4,magenta,LG,,RET setprinter LG!} {!RET cmdmessageboxcallback 5,green,Fujitsu,,RET setprinter Fujitsu!} |
1 2 3 4 5 6 7 8 |
SORU:setprinter SABLON:setprinter ({HER}) CEVAP: {!SET $printername={HER}!} {!SET $modelsecili={!RET cmdinputbox Yazıcı ({!GET $printername!})Yükleme ekranından yazıcı modeliniz seçili geliyor mu? (Evet/Hayır)!}!} {!IF evet in $modelsecili ?? {!RET optselectwarningmessage!}::{!RET optselectprintermodel!}!} |
1 2 3 4 5 6 7 |
SORU:optselectwarningmessage CEVAP: Gelen uyarı mesajını listeden seçebilir misiniz? {!RET cmdmessageboxcallback 2,red,Yazıcıya bağlanılamıyor,,RET optcannotconnectprinter!} {!RET cmdmessageboxcallback 3,blue,Yazdırma yetkiniz bulunmamaktadır,,RET optdonthaveprivilege!} |
1 2 3 4 5 6 |
SORU:optselectprintermodel CEVAP: 1) Listeden uygun yazıcı modelini seçebilirsiniz. 2) Yazıcınızın modeli yükleme ekranında yer almıyorsa, servis masasına çağrı açabilirim. |
1 2 3 4 5 6 7 |
SORU:sorun* SABLON:{BAŞ}sorun{BAŞ}çözül(emiyor|emedi|medi|miyor){SON} CEVAP: BT ekiplerine sorununuzu iletiyorum. {!RET cmdloadurl http://desteksitesi/?printername={!GET $printername!}&userid={!RET macaddr!} |
1 2 3 4 5 6 |
SORU:optcannotconnectprinter CEVAP: 1) Yazıcının açık olduğunu kontrol ediniz. 2) Bilgisayarınızın ağ bağlantısını kontrol ediniz. |
1 2 3 4 5 6 |
SORU:optdonthaveprivilege CEVAP: 1) Çağrı giriş ekranından yetki talebinde bulunabilirsiniz. 2) Güvenlik ofisine konuyla ilgili mail atabilirsiniz. |