REX API
Başlarken
Panel
Keşfet
API
REX
API
Ödeme
Yönetimi
REX ve AIML
Servis Yönetimi ekranı kullanararak AIML dilinde botlar yazılabilmektedir. Botlarda
kullanıcının yazdığı mesajlara göre diyaloglar oluşturulabilinir.
Mesaj gönderimi için uyulması gerekilen tüm kurallar (her bir mesajın yapısı) TES API
dokümanlarında açıklanmştır. Bu kurallara uyulmaması durumunda mesaj kullanıcıya
iletilemez.
HELLO kelimesinden sonra gelen kısım belirtilen regular expression’a uyarsa, uyan
kısım USERNAME değişkenine atanır, template ile belirtilen mesajın dönüşü gerçekleşir.
Regular expression sonucunun atanacağı değişkenin büyük harflerle yazılması zorunludur.
BYE kelimesinden sonra geçen kısım belirtilen regular expression’a uyarsa template
ile belirtilen mesajın dönüşü gerçekleşir.
Kullanıcı resim dosyasını service gönderirse ve yukarıdaki gibi AIML yazılırsa, dış
sistem ws ‘ine aşağıdaki JSON isteği yapılır;
Herhangi bir gönderim için AIML içinde cevabın karşılanmak istenmesi durumunda That
değeri de ALL değerini içerecek şekilde yazılır;
Regular Expression Kullanımı
<aiml version='2.0' encoding='UTF-8'> <category> <pattern >HELLO [A-Z]+:USERNAME</pattern> <template >Hello <get var='USERNAME'/> </template> </category> </aiml>
<aiml version='2.0' encoding='UTF-8'> <category> <pattern >BYE [A-Z]+</pattern> <template >Bye bye. </template> </category> </aiml>
Mesaj gönderen kullanıcı bilgisini öğrenme;
<bip_sender/> komutu kulanılır<aiml version='2.0' encoding='UTF-8' > <category > <pattern>*</pattern> <template>Merhaba. Numaranız: <bip_sender/> </template> </category> </aiml>
Bilgi Hatırlama;
<bip_set/> ve <bip_get/> komutları kullanılır.- bip_set: Kalıcı olarak bir bilginin REX sistemine kayıt edilmesi için kullanılır. Belirli bir değişken ismi ile ilgili değer sisteme kayıt edilir.
- bip_get: Kalıcı olarak REX sistemine kayıt edilen bir değeri almak için kullanılır. Kayıt edildiği değişken ismi ile ilgili değere ulaşılır.
Kullanımları
<bip_set var=’variableName’>variableValue</bip_set> <bip_get var=’variableName’/><aiml version='2.0' encoding='UTF-8' > <category> <pattern>*</pattern> <template> <think> <set var='name'> <bip_get var='persistedName' /> </set> </think> <condition var='name'> <li value='unknown'>İsim bilgisini giriniz</li> <li>Merhaba Sn <get var='name' /></li> </condition> </template> </category> <category> <pattern>*</pattern> <that>İsim bilgisini giriniz</that> <template>Bilgileriniz kayıt edildi. <bip_set var='persistedName'> <star /> </bip_set> </template> </category> </aiml>
NewLine Karakterini Kullanma;
template ve that tag leri içine new line karakteri konabilir.<aiml version='1.0.1' encoding='UTF-8'> <category> <pattern>newline</pattern> <template>new line<br/>testi </template> </category> <category> <pattern>*</pattern> <that>new line<br/>testi </that> <template>that ile eşleşti.</template> </category> </aiml>
Zengin Media Gönderimi
- bip_send_tmm_poll : Anket tipinde mesaj göndermek için kullanılır
- bip_send_tmm_single : Tekli Media mesajı göndermek için kullanılır
- bip_send_tmm_multiple : Çoklu Media mesajı göndermek için kullanılır
- bip_send_tmm_carousel : Sıralı Media mesajı göndermek için kullanılır
- bip_send_tmm_quickreply : Hızlı Cevap Media mesajı göndermek için kullanılır
- Verilen cevapların AIML içinde THAT ile eşleştirilmesi için “ID” bilgisi kullanılır. ID bilgisinin maximum 5 karakter olmasına dikkat edilmelidir
- That ile cevabın yakalandığı yerde type =”” alanına gönderim için kullanılan TMM komutunun ismi yazılır. Bu sadece farklı tipte TMM mesajlarında aynı ID değeri kullanılabilir
- Bir anket mesajının tüm option-id değerlerinin kendi içinde unique verilmesi gerekir.
- Anket dışındaki diğer media mesajlarında tüm buton payload değerlerinin kendi içinde unique verilmesi gerekir.
- AIML içinde ratio bilgisini vermek zorunlu değilldir. Verilmemesi halinde REX sistemi ratio değerini hesaplar.
Metin
Fotoğraf
<aiml version='1.0.1'> <category> <pattern>resim</pattern> <template> <bip_send_image> <bip_send_image_url>https://.....jpg</bip_send_image_url> </bip_send_image> </template> </category> </aiml>
Ses
<aiml version='1.0.1'> <category> <pattern>ses</pattern> <template> <bip_send_audio> <bip_send_audio_url>https://.....mp3</bip_send_audio_url> </bip_send_audio> </template> </category> </aiml>
Video
Konum
<aiml version='1.0.1'> <category> <pattern>lokasyon</pattern> <template> <bip_send_location> <bip_send_location_latitude>40.9552494</bip_send_location_latitude> <bip_send_location_longitude>29.1181094</bip_send_location_longitude> <bip_send_location_description>optional desc</bip_send_location_description> <bip_send_location_title>optional title</bip_send_location_title> </bip_send_location> </template> </category> </aiml>
Tekli Media mesajının gönderilmesi;
Media mesajlarında Postback tipinde bir butona cevap verildiğinde AIML içinde <pattern>*</pattern> notasyonu ile cevap yakalanabileceği gibi <pattern>PAYLOAD_DEGERI</pattern> notasyonu ile de verilen cevap yakalanabilir.<aiml version='1.0.1' encoding='UTF-8'> <category> <pattern>tmp1</pattern> <template> <bip_send_tmm_single id='S1'> <bip_tmm_single_title>Başlık giriniz</bip_tmm_single_title> <bip_tmm_single_desc>Tanım giriniz</bip_tmm_single_desc> <bip_tmm_single_image> <bip_tmm_single_image_url>https://timsac.turkcell.com.tr/scontent/p2p/14112016/11/P1e646f5c03a7b4b44f6da1329ac218e322da72356e79e5116dff86e3fc255a228.png</bip_tmm_single_image_url> <bip_tmm_single_image_ratio>1</bip_tmm_single_image_ratio> <bip_tmm_single_image_button> <bip_tmm_single_image_button_name>Buton-1</bip_tmm_single_image_button_name> <bip_tmm_single_image_button_url>https://www.bip.ai</bip_tmm_single_image_button_url> </bip_tmm_single_image_button> </bip_tmm_single_image> <bip_tmm_single_button_list> <bip_tmm_single_button> <bip_tmm_single_button_type>I</bip_tmm_single_button_type> <bip_tmm_single_button_name>Buton-2</bip_tmm_single_button_name> <bip_tmm_single_button_url>https://www.bip.ai</bip_tmm_single_button_url> </bip_tmm_single_button> <bip_tmm_single_button> <bip_tmm_single_button_type>P</bip_tmm_single_button_type> <bip_tmm_single_button_name>Buton-3</bip_tmm_single_button_name> <bip_tmm_single_button_payload>Payload-Buton-3</bip_tmm_single_button_payload> </bip_tmm_single_button> </bip_tmm_single_button_list> </bip_send_tmm_single> </template> </category> <category> <pattern>Payload-Buton-3</pattern> <that type='bip_send_tmm_single'>S1</that> <template>STMM de Payload-Buton-3 una basıldı.</template> </category> </aiml>
Çoklu Media mesajının gönderilmesi;
Media mesajlarında Postback tipinde bir butona cevap verildiğinde AIML içinde <pattern>*</pattern> notasyonu ile cevap yakalanabileceği gibi <pattern>PAYLOAD_DEGERI</pattern> notasyonu ile de verilen cevap yakalanabilir.<aiml version='1.0.1' encoding='UTF-8'> <category> <pattern>tmp2</pattern> <template> <bip_send_tmm_multiple id='M1'> <bip_tmm_multiple_title>Baslik giriniz</bip_tmm_multiple_title> <bip_tmm_multiple_desc>Tanım giriniz</bip_tmm_multiple_desc> <bip_tmm_multiple_image> <bip_tmm_multiple_image_url>https://timsac.turkcell.com.tr/scontent/p2p/14112016/11/P1e646f5c03a7b4b44f6da1329ac218e322da72356e79e5116dff86e3fc255a228.png</bip_tmm_multiple_image_url> <bip_tmm_multiple_image_ratio>1</bip_tmm_multiple_image_ratio> <bip_tmm_multiple_image_button> <bip_tmm_multiple_image_button_name>Buton-1</bip_tmm_multiple_image_button_name> <bip_tmm_multiple_image_button_url>https://www.bip.ai</bip_tmm_multiple_image_button_url> </bip_tmm_multiple_image_button> </bip_tmm_multiple_image> <bip_tmm_multiple_button_list> <bip_tmm_multiple_button> <bip_tmm_multiple_button_type>I</bip_tmm_multiple_button_type> <bip_tmm_multiple_button_name>Buton-2</bip_tmm_multiple_button_name> <bip_tmm_multiple_button_url>https://www.bip.ai</bip_tmm_multiple_button_url> </bip_tmm_multiple_button> <bip_tmm_multiple_button> <bip_tmm_multiple_button_type>P</bip_tmm_multiple_button_type> <bip_tmm_multiple_button_name>Buton-3</bip_tmm_multiple_button_name> <bip_tmm_multiple_button_payload>Payload-Buton-3</bip_tmm_multiple_button_payload> </bip_tmm_multiple_button> </bip_tmm_multiple_button_list> <bip_tmm_multiple_subitem_list> <bip_tmm_multiple_subitem> <bip_tmm_multiple_subitem_title>Baslik giriniz</bip_tmm_multiple_subitem_title> <bip_tmm_multiple_subitem_desc>Tanım giriniz</bip_tmm_multiple_subitem_desc> <bip_tmm_multiple_subitem_image> <bip_tmm_multiple_subitem_image_url>https://timsac.turkcell.com.tr/scontent/p2p/14112016/11/P1e646f5c03a7b4b44f6da1329ac218e322da72356e79e5116dff86e3fc255a228.png</bip_tmm_multiple_subitem_image_url> <bip_tmm_multiple_subitem_image_ratio>0.5</bip_tmm_multiple_subitem_image_ratio> </bip_tmm_multiple_subitem_image> <bip_tmm_multiple_subitem_button_list> <bip_tmm_multiple_subitem_button> <bip_tmm_multiple_subitem_button_type>I</bip_tmm_multiple_subitem_button_type> <bip_tmm_multiple_subitem_button_name>Buton-4</bip_tmm_multiple_subitem_button_name> <bip_tmm_multiple_subitem_button_url>https://www.bip.ai</bip_tmm_multiple_subitem_button_url> </bip_tmm_multiple_subitem_button> <bip_tmm_multiple_subitem_button> <bip_tmm_multiple_subitem_button_type>P</bip_tmm_multiple_subitem_button_type> <bip_tmm_multiple_subitem_button_name>Buton-5</bip_tmm_multiple_subitem_button_name> <bip_tmm_multiple_subitem_button_payload>Payload-Buton-5</bip_tmm_multiple_subitem_button_payload> </bip_tmm_multiple_subitem_button> </bip_tmm_multiple_subitem_button_list> </bip_tmm_multiple_subitem> <bip_tmm_multiple_subitem> <bip_tmm_multiple_subitem_title>Baslik giriniz</bip_tmm_multiple_subitem_title> <bip_tmm_multiple_subitem_desc>Tanım giriniz</bip_tmm_multiple_subitem_desc> <bip_tmm_multiple_subitem_image> <bip_tmm_multiple_subitem_image_url>https://timsac.turkcell.com.tr/scontent/p2p/14112016/11/P1e646f5c03a7b4b44f6da1329ac218e322da72356e79e5116dff86e3fc255a228.png</bip_tmm_multiple_subitem_image_url> <bip_tmm_multiple_subitem_image_ratio>1</bip_tmm_multiple_subitem_image_ratio> </bip_tmm_multiple_subitem_image> <bip_tmm_multiple_subitem_button_list> <bip_tmm_multiple_subitem_button> <bip_tmm_multiple_subitem_button_type>I</bip_tmm_multiple_subitem_button_type> <bip_tmm_multiple_subitem_button_name>Buton-6</bip_tmm_multiple_subitem_button_name> <bip_tmm_multiple_subitem_button_url>https://www.bip.ai</bip_tmm_multiple_subitem_button_url> </bip_tmm_multiple_subitem_button> <bip_tmm_multiple_subitem_button> <bip_tmm_multiple_subitem_button_type>P</bip_tmm_multiple_subitem_button_type> <bip_tmm_multiple_subitem_button_name>Buton-7</bip_tmm_multiple_subitem_button_name> <bip_tmm_multiple_subitem_button_payload>Payload-Buton-7</bip_tmm_multiple_subitem_button_payload> </bip_tmm_multiple_subitem_button> </bip_tmm_multiple_subitem_button_list> </bip_tmm_multiple_subitem> </bip_tmm_multiple_subitem_list> </bip_send_tmm_multiple> </template> </category> <category> <pattern>Payload-Buton-3</pattern> <that type='bip_send_tmm_multiple'>M1</that> <template>MTMM de Payload-Buton-3 e basıldı.</template> </category> <category> <pattern>Payload-Buton-5</pattern> <that type='bip_send_tmm_multiple'>M1</that> <template>MTMM de Payload-Buton-5 e basıldı.</template> </category> <category> <pattern>Payload-Buton-7</pattern> <that type='bip_send_tmm_multiple'>M1</that> <template>MTMM de Payload-Buton-7 e basıldı.</template> </category> </aiml>
Sıralı Media mesajının gönderilmesi;
<aiml version='1.0.1' encoding='UTF-8'> <category> <pattern>tmp3</pattern> <template> <bip_send_tmm_carousel id='CRS1'> <bip_tmm_carousel_subitem> <bip_tmm_carousel_subitem_title>Baslik giriniz</bip_tmm_carousel_subitem_title> <bip_tmm_carousel_subitem_desc>Tanım giriniz</bip_tmm_carousel_subitem_desc> <bip_tmm_carousel_subitem_image> <bip_tmm_carousel_subitem_image_url>https://timsac.turkcell.com.tr/scontent/p2p/14112016/11/P1e646f5c03a7b4b44f6da1329ac218e322da72356e79e5116dff86e3fc255a228.png</bip_tmm_carousel_subitem_image_url> <bip_tmm_carousel_subitem_image_ratio>1</bip_tmm_carousel_subitem_image_ratio> </bip_tmm_carousel_subitem_image> <bip_tmm_carousel_subitem_button_list> <bip_tmm_carousel_subitem_button> <bip_tmm_carousel_subitem_button_type>I</bip_tmm_carousel_subitem_button_type> <bip_tmm_carousel_subitem_button_name>Buton-1</bip_tmm_carousel_subitem_button_name> <bip_tmm_carousel_subitem_button_url>https://www.bip.ai</bip_tmm_carousel_subitem_button_url> </bip_tmm_carousel_subitem_button> <bip_tmm_carousel_subitem_button> <bip_tmm_carousel_subitem_button_type>P</bip_tmm_carousel_subitem_button_type> <bip_tmm_carousel_subitem_button_name>Buton-2</bip_tmm_carousel_subitem_button_name> <bip_tmm_carousel_subitem_button_payload>Payload-Buton-2</bip_tmm_carousel_subitem_button_payload> </bip_tmm_carousel_subitem_button> </bip_tmm_carousel_subitem_button_list> </bip_tmm_carousel_subitem> <bip_tmm_carousel_subitem> <bip_tmm_carousel_subitem_title>Baslik giriniz</bip_tmm_carousel_subitem_title> <bip_tmm_carousel_subitem_desc>Tanım giriniz</bip_tmm_carousel_subitem_desc> <bip_tmm_carousel_subitem_image> <bip_tmm_carousel_subitem_image_url>https://timsac.turkcell.com.tr/scontent/p2p/14112016/11/P1e646f5c03a7b4b44f6da1329ac218e322da72356e79e5116dff86e3fc255a228.png</bip_tmm_carousel_subitem_image_url> <bip_tmm_carousel_subitem_image_ratio>1</bip_tmm_carousel_subitem_image_ratio> </bip_tmm_carousel_subitem_image> <bip_tmm_carousel_subitem_button_list> <bip_tmm_carousel_subitem_button> <bip_tmm_carousel_subitem_button_type>I</bip_tmm_carousel_subitem_button_type> <bip_tmm_carousel_subitem_button_name>Buton-3</bip_tmm_carousel_subitem_button_name> <bip_tmm_carousel_subitem_button_url>https://www.bip.ai</bip_tmm_carousel_subitem_button_url> </bip_tmm_carousel_subitem_button> <bip_tmm_carousel_subitem_button> <bip_tmm_carousel_subitem_button_type>P</bip_tmm_carousel_subitem_button_type> <bip_tmm_carousel_subitem_button_name>Buton-4</bip_tmm_carousel_subitem_button_name> <bip_tmm_carousel_subitem_button_payload>Payload-Buton-4</bip_tmm_carousel_subitem_button_payload> </bip_tmm_carousel_subitem_button> </bip_tmm_carousel_subitem_button_list> </bip_tmm_carousel_subitem> </bip_send_tmm_carousel> </template> </category> <category> <pattern>Payload-Buton-2</pattern> <that type='bip_send_tmm_carousel'>CRS1</that> <template>Carousel de Payload-Buton-2 ye basıldı.</template> </category> <category> <pattern>Payload-Buton-4</pattern> <that type='bip_send_tmm_carousel'>CRS1</that> <template>Carousel de Payload-Buton-4 ye basıldı.</template> </category> </aiml>
Hızlı Cevap Media mesajının gönderilmesi;
<aiml version='1.0.1' encoding='UTF-8'> <category> <pattern>tmp4</pattern> <template> <bip_send_tmm_quickreply id='QR1'> <bip_send_tmm_quickreply_button> <bip_send_tmm_quickreply_button_name>Button-1</bip_send_tmm_quickreply_button_name> <bip_send_tmm_quickreply_button_payload>Payload-Button-1</bip_send_tmm_quickreply_button_payload> </bip_send_tmm_quickreply_button> <bip_send_tmm_quickreply_button> <bip_send_tmm_quickreply_button_name>Button-2</bip_send_tmm_quickreply_button_name> <bip_send_tmm_quickreply_button_payload>Payload-Button-2</bip_send_tmm_quickreply_button_payload> </bip_send_tmm_quickreply_button> </bip_send_tmm_quickreply> </template> </category> <category> <pattern>Payload-Button-1</pattern> <that type='bip_send_tmm_quickreply'>QR1</that> <template>Quickreply da Payload-Buton-1 ye basıldı.</template> </category> <category> <pattern>Payload-Button-2</pattern> <that type='bip_send_tmm_quickreply'>QR1</that> <template>Quickreply da Payload-Buton-2 ye basıldı.</template> </category> </aiml>
Tek seçim yapılan anket mesajının gönderilmesi;
Anket mesajına cevap verildiğinde AIML içinde<aiml version='1.0.1' encoding='UTF-8'> <category> <pattern>tekli-anket-secimi</pattern> <template> <bip_send_tmm_poll id='PS1'> <bip_tmm_poll_title>Baslik giriniz</bip_tmm_poll_title> <bip_tmm_poll_desc>Tanım giriniz</bip_tmm_poll_desc> <bip_tmm_poll_type>S</bip_tmm_poll_type> <bip_tmm_poll_time>12.08.2017 17:36:50.116 +0300</bip_tmm_poll_time> <bip_tmm_poll_buttonname>Buton-1</bip_tmm_poll_buttonname> <bip_tmm_poll_option_list> <bip_tmm_poll_option> <bip_tmm_poll_option_text>option-0</bip_tmm_poll_option_text> <bip_tmm_poll_option_id>0</bip_tmm_poll_option_id> </bip_tmm_poll_option> <bip_tmm_poll_option> <bip_tmm_poll_option_text>option-1</bip_tmm_poll_option_text> <bip_tmm_poll_option_id>1</bip_tmm_poll_option_id> </bip_tmm_poll_option> <bip_tmm_poll_option> <bip_tmm_poll_option_text>option-2</bip_tmm_poll_option_text> <bip_tmm_poll_option_id>2</bip_tmm_poll_option_id> </bip_tmm_poll_option> <bip_tmm_poll_option> <bip_tmm_poll_option_text>option-3</bip_tmm_poll_option_text> <bip_tmm_poll_option_id>3</bip_tmm_poll_option_id> </bip_tmm_poll_option> </bip_tmm_poll_option_list> <bip_tmm_poll_image> <bip_tmm_poll_image_url>https://timsac.turkcell.com.tr/scontent/p2p/14112016/11/P1e646f5c03a7b4b44f6da1329ac218e322da72356e79e5116dff86e3fc255a228.png</bip_tmm_poll_image_url> <bip_tmm_poll_image_ratio>1</bip_tmm_poll_image_ratio> <bip_tmm_poll_image_ratio>1</bip_tmm_poll_image_ratio> </bip_tmm_poll_image> </bip_send_tmm_poll> </template> </category> <category> <pattern>0</pattern> <that type='bip_send_tmm_poll'>PS1</that> <template>Tekli anket secimi: option-1 secildi.</template> </category> <category> <pattern>*</pattern> <that type='bip_send_tmm_poll'>PS1</that> <template>Tekli anket secimi: <star/> secildi. </template> </category> </aiml>
Coklu seçim yapılan anket mesajının gönderilmesi;
Ankete cevap verildiğinde AIML içinde <pattern>*</pattern> notasyonu ile cevap yakalanabileceği gibi <pattern>OPTIONID_DEGERI</pattern> notasyonu ile de verilen cevap yakalanabilir. Aynı zamanda çoklu şeçimin tek seferde yakalanabilmesi için <pattern /> içinde Reqular Expression ile de verilen cevap yakalanabilir.<aiml version='1.0.1' encoding='UTF-8'> <category> <pattern>coklu-anket-secimi</pattern> <template> <bip_send_tmm_poll id='PM1'> <bip_tmm_poll_title>Baslik giriniz</bip_tmm_poll_title> <bip_tmm_poll_desc>Tanım giriniz</bip_tmm_poll_desc> <bip_tmm_poll_type>M</bip_tmm_poll_type> <bip_tmm_poll_time>12.08.2017 17:36:50.116 +0300</bip_tmm_poll_time> <bip_tmm_poll_buttonname>Button-1</bip_tmm_poll_buttonname> <bip_tmm_poll_option_list> <bip_tmm_poll_option> <bip_tmm_poll_option_text>option-1</bip_tmm_poll_option_text> <bip_tmm_poll_option_id>0</bip_tmm_poll_option_id> </bip_tmm_poll_option> <bip_tmm_poll_option> <bip_tmm_poll_option_text>option-2</bip_tmm_poll_option_text> <bip_tmm_poll_option_id>1</bip_tmm_poll_option_id> </bip_tmm_poll_option> <bip_tmm_poll_option> <bip_tmm_poll_option_text>option-3</bip_tmm_poll_option_text> <bip_tmm_poll_option_id>2</bip_tmm_poll_option_id> </bip_tmm_poll_option> <bip_tmm_poll_option> <bip_tmm_poll_option_text>option-4</bip_tmm_poll_option_text> <bip_tmm_poll_option_id>3</bip_tmm_poll_option_id> </bip_tmm_poll_option> </bip_tmm_poll_option_list> <bip_tmm_poll_image> <bip_tmm_poll_image_url>https://timsac.turkcell.com.tr/scontent/p2p/14112016/11/P1e646f5c03a7b4b44f6da1329ac218e322da72356e79e5116dff86e3fc255a228.png</bip_tmm_poll_image_url> <bip_tmm_poll_image_ratio>1</bip_tmm_poll_image_ratio> </bip_tmm_poll_image> </bip_send_tmm_poll> </template> </category> <category> <pattern>^(?=.*?(0))(?=.*?(1))(?=.*?(2))(?=.*?(3)).* #x3C;/pattern> <that type='bip_send_tmm_poll'>PM1</that> <template>Coklu anket secimi: option-1 option-2 option-3 option-4 secildi</template> </category> <category> <pattern>^(?=.*?(0))(?=.*?(1))(?=.*?(2)).* #x3C;/pattern> <that type='bip_send_tmm_poll'>PM1</that> <template>Coklu anket secimi: option-1 option-2 option-3 secildi</template> </category> <category> <pattern>^(?=.*?(0))(?=.*?(1)).* #x3C;/pattern> <that type='bip_send_tmm_poll'>PM1</that> <template>Coklu anket secimi: option-1 option-2 secildi</template> </category> <category> <pattern>0</pattern> <that type='bip_send_tmm_poll'>PM1</that> <template>Coklu anket secimi: option-1 secildi.</template> </category> <category> <pattern>*</pattern> <that type='bip_send_tmm_poll'>PM1</that> <template>Coklu anket secimi: <star/> secildi. </template> </category> </aiml>
Onay mesajı gönderimi
Verilen cevapların AIML içinde THAT ile eşleştirilmesi için “ID” bilgisi kullanılır. ID bilgisinin maximum 5 karakter olmasına dikkat edilmelidir.Onay sorusu
<aiml version='1.0.1' encoding='UTF-8'> <category> <pattern>consent_simple</pattern> <template> <bip_send_consent id='c_s1' > <bip_consent_message>Consent Simple sorunusu onaylıyor musunuz?</bip_consent_message> <bip_consent_reject_button>Hayır</bip_consent_reject_button> <bip_consent_approval_button>Evet</bip_consent_approval_button> </bip_send_consent> </template> </category> <category> <pattern>Hayır</pattern> <that type='bip_send_consent'>c_s1</that> <template>Consent Simple sorusunda Hayır butonu tıklandı.</template> </category> <category> <pattern>Evet</pattern> <that type='bip_send_consent'>c_s1</that> <template>Consent Simple sorusunda Evet butonu tıklandı.</template> </category> </aiml>
Input alan Onay sorusu
<aiml version='1.0.1' encoding='UTF-8'> <category> <pattern>consent_input</pattern> <template> <bip_send_consent id='c_i1' consent_input='consent_input_variable'> <bip_consent_message>Consent Input sorunusu onaylıyor musunuz?</bip_consent_message> <bip_consent_reject_button>Hayır</bip_consent_reject_button> <bip_consent_approval_button>Evet</bip_consent_approval_button> </bip_send_consent> </template> </category> <category> <pattern>Hayır</pattern> <that type='bip_send_consent'>c_i1</that> <template> <get name='consent_input_variable'/> girişi için teşekkürler. Consent Input sorusunda Hayır butonu tıklandı. </template> </category> <category> <pattern>Evet</pattern> <that type='bip_send_consent'>c_i1</that> <template> <get name='consent_input_variable'/> girişi için teşekkürler. Consent Input sorusunda Evet butonu tıklandı. </template> </category> </aiml>
Kullanıcıdan Resim,Video,Ses,Caps,Sticker tipinde mesaj gelmesi;
<aiml version='1.0.1'> <category> <pattern type='LOCATION'></pattern> <template>LOCATION geldi. Detaylar; <bip_incoming_message field='latitude' /> | <bip_incoming_message field='longitude' /> | <bip_incoming_message field='title' /> | <bip_incoming_message field='desc' /></template> </category> <category> <pattern type="MEDIA">IMAGE</pattern> <template>IMAGE geldi. Detaylar; <bip_incoming_message field='message' /></template> </category> <category> <pattern type="MEDIA">VIDEO</pattern> <template>VIDEO geldi. Detaylar; <bip_incoming_message field='message' /></template> </category> <category> <pattern type="MEDIA">AUDIO</pattern> <template>AUDIO geldi. Detaylar; <bip_incoming_message field='message' /></template> </category> <category> <pattern type="MEDIA">STICKER</pattern> <template>AUDIO geldi. Detaylar; <bip_incoming_message field='message' /></template> </category> <category> <pattern type="MEDIA">CAPS</pattern> <template>AUDIO geldi. Detaylar; <bip_incoming_message field='message' /></template> </category> <category> <pattern type="MEDIA">ALL</pattern> <template>AIML içinde Resim/Video/Ses/Caps/Sticker tiplerinden biri için özel bir category tanımı yapılmadıysa bu kategory ile eşleşme olur.</template> </category> </aiml>
Kullanıcıya Lokasyon, Resim ya da Ses mesajı gönderimi
<aiml version='1.0.1'> <category> <pattern>resim</pattern> <template> <bip_send_image> <bip_send_image_url>https://.....jpg</bip_send_image_url> </bip_send_image> </template> </category> <category> <pattern>ses</pattern> <template> <bip_send_audio> <bip_send_audio_url>https://.....mp3</bip_send_audio_url> </bip_send_audio> </template> </category> <category> <pattern>lokasyon</pattern> <template> <bip_send_location> <bip_send_location_latitude>40.9552494</bip_send_location_latitude> <bip_send_location_longitude>29.1181094</bip_send_location_longitude> <bip_send_location_description>optional desc</bip_send_location_description> <bip_send_location_title>optional title</bip_send_location_title> </bip_send_location> </template> </category> </aiml>
POI sorgulama
- bip_poi_unit degeri metre ya da kilometre değerlerinden birini alabilir. AIML de Metre için “m” kilometre için “km” yazılması gerekir. AIML de belirtilmezse default “m” kabul edilir.
- bip_poi_number_of_responses değeri maksimum 5 değerini alabilir. AIML de belirtilmezse default 3 kabul edilir.
- bip_poi_distance değeri AIML de belirtilmezse default 500 kabul edilir.
<aiml version='1.0.1'> <category> <pattern>poi</pattern> <template>Lokasyonunuzu gönderiniz.</template> </category> <category> <pattern type='LOCATION'></pattern> <that>Lokasyonunuzu gönderiniz.</that> <template> <think> <set var='Lat'><bip_incoming_message field='latitude' /></set> <set var='lon'><bip_incoming_message field='longitude' /></set> </think> <bip_query_poi query_result='operationResult' query_response='poiList' query_response_count='poiListCount'> <bip_poi_latitude><get var='Lat' /></bip_poi_latitude> <bip_poi_longitude><get var='lon' /></bip_poi_longitude> <bip_poi_category /> <bip_poi_number_of_responses /> <bip_poi_unit /> <bip_poi_distance /> </bip_query_poi> <condition var='operationResult'> <li value='unknown'>AIML yazım hatası. operationResult isimli bir değişken bulunamadı.</li> <li value='false'>İşlemi gerçekleştirilemedi. Sorgulama yapılan Sistem ile baglantı vs.. problemi yaşanmıştır.</li> <li value='true'> <condition var='poiListCount'> <li value='unknown'>AIML yazım hatası. poiListCount isimli bir değişken bulunamadı.</li> <li value='0'>Uygun POI bulunamadı.</li> <li> Merhaba. Size en yakın POI ler; <bip_send_contents var='poiList' /> </li> </condition> </li> </condition> </template> </category> </aiml>
Takipçi Hoş Geldin Mesajı
Servisin bir bip kullanıcısı tarafından takip edilmeye başlanması durumu. <pattern type=’event’ >WELCOME</pattern> şeklinde AIML içinde tanımlanır.<aiml version='2.0'> <category> <pattern type='event'>WELCOME</pattern> <template> <bip_richmedia_poll id='12345'> <bip_description>Merhaba. Menüden seçiniz.</bip_description> <bip_title>BOT tan gönderilen takibe hoş geldin mesajı</bip_title> <bip_polltime>35</bip_polltime> <bip_option>option 1</bip_option> <bip_option>option 2</bip_option> </bip_richmedia_poll> </template> </category> <category> <pattern>option 1</pattern> <that type='bip_richmedia_poll'>12345</that> <template>option 1 seçildi </template> </category> <category> <pattern>option 2</pattern> <that type='bip_richmedia_poll'>12345</that> <template>option 2 seçildi </template> </category> </aiml>
Takipçinin servisi takibi bırakması
Servisin bip kullanıcısı tarafından takip edilmesinin bırakılması durumu. <pattern type=’event’ > UNFOLLOW </pattern> şeklinde AIML içinde tanımlanır.<aiml version='1.0.1' encoding='UTF-8'> <category> <pattern type='event'>UNFOLLOW</pattern> <template> <think>Servisin takibi bıraıldıgı için mesaj gonderilemez ancak baska islemler yapilabilinir.</think> </template> </category> </aiml>
Sohbete Hoş Geldin Mesajı
Kullanıcı servisle olan eski sohbet lerini görüntülediği zaman gönderilen mesajdır. TES API dokümanlarından daha detaylı bilgi edinilebilinir. <pattern type=’event’ minIdleTime=’1′ frequency=’D’ >WARM_WELCOME</pattern> şeklinde AIML içinde tanımlanır.- frequency : optional bir değerdir. Değerler :D/W ,
D:günlük, W:Haftalık.
- Frequency belirtilmezse her seferinde anlamına gelir. Yani her sohbet ekranı açılışında min 1 er dk aralıklarla mesaj gönderilir.
- D (Day): Günde 1 defa sohbet ekranı açılışında mesaj gönderilir. Ertesi güne kadar mesaj gönderilmez. Yeni gün 00:01 de başlar.
- W (Week): Haftada 1 defa sohbet ekranı açılışında mesaj gönderilir. Bir sonraki haftaya kadar mesaj gönderilmez. Hafta pazartesi 00:01 de başlar
- minIdleTime : Minimum 1 dakika olmalıdır. Mesajın yeniden görünmesi için kullanıcının servis ile en son işleminden beri geçmesi gereken minimum süre. Belirtilmemesi durumunda default 1 dakika kabul edilir.
<aiml version='2.0'> <category> <pattern type='event' minIdleTime='1' frequency='D' >WARM_WELCOME</pattern> <template> <bip_richmedia_poll id='12345'> <bip_image>https://timsac.turkcell.com.tr/scontent/p2p/14112016/11/P1e646f5c03a7b4b44f6da1329ac218e322da72356e79e5116dff86e3fc255a228.png</bip_image> <bip_description>Merhaba. Menüden seçiniz.</bip_description> <bip_title>BOT tan gönderilen sohbete hoş geldin mesajı</bip_title> <bip_polltime>35</bip_polltime> <bip_option>option 1</bip_option> <bip_option>option 2</bip_option> </bip_richmedia_poll> </template> </category> <category> <pattern>option 1</pattern> <that type='bip_richmedia_poll'>12345</that> <template>option 1 seçildi </template> </category> <category> <pattern>view option 2</pattern> <that type='bip_richmedia_poll'>12345</that> <template>option 2 seçildi</template> </category> </aiml>
AIML içinden Dış Sistem Web Servisinin çağrılması
AIML içinden dışarıdaki bir web servisin çağrılması mümkündür. Bu özellik kullanılarak bir webservis aracılığıyla başka bir sistem üzerinden sonucu alınabilecek işlemler yabılabilir. bip_webservice_call ve bip_webservice_query komutları kullanılır. Dışarıdaki Web servis çağrıldıktan sonra gelen cevap kullanıcıya otomatik gönderilsin isteniyorsa bip_webservice_call, dönen cevap ile AIML içinde farklı bir işlem yapılmak isteniyorsa bip_webservice_query kullanılır.bip_webservice_call;
Dış sistemdeki bir web servisini çağırmak için kullanılır. Dış sistemden dönen senkron cevap kullanıcıya iletilir.- bip_parameter : Dış sistemdeki bir web servis ile iletişim kurulacağı zaman dinamik parametre geçişine imkan sağlar. Dinamik parametreler map yapısı içinde key/value çiftleri halinde iletilir.
- bip_webservice_call_result : Dış sistemdeki bir web servis yapılan işlemin durumu hakkında bilgi verir. true ya da false değerlerini alır. Web Servis ile bağlantı kurulamaması ya da dış sistemden http-status-code !=200 alınması durumunda false değerini döner.
- “host” özelliği ile Dış Sistem WS Url i AIML içinden verilir. Dıs sistem ws ‘inin internete acık 80 ya da 443 portunda calısan bir sistem olması gerekir.
<aiml version='2.0' encoding='UTF-8'> <category> <pattern>*</pattern> <template> <bip_webservice_call host="EXTERNAL_WS_URL"> <bip_parameter name='sorguTipi'>doviz</bip_parameter> <bip_parameter name='dovizTipi'>*</bip_parameter> <bip_webservice_call_result var='wscallresult' /> </bip_webservice_call> <condition var='wscallresult'> <li value='false'><srai>EXTWS_ERROR</srai></li> </condition> </template> </category> <category> <pattern>EXTWS_ERROR</pattern> <template>Dış sistem ile bağlantı kurulamadı ya da dış sistemden hata alindi. Kısacasi http-status-code !=200</template> </category> </aiml>
bip_webservice_query;
Dış sistemdeki bir web servisi çağırmak için kullanılır. Dış sistemden dönen senkron cevap AIML’e döner. BOT’u yazan kişi dönen cevap ile ne yapmak istediğine yazacağı AIML ile karar verir.- bip_parameter : Dış sistemdeki bir web servis ile iletişim kurulacağı zaman dinamik parametre geçişine imkan sağlar. Dinamik parametreler map yapısı içinde key/value çiftleri halinde iletilir.
- bip_webservice_query_result : Dış sistemdeki bir web servis yapılan işlemin durumu hakkında bilgi verir. true ya da false değerlerini alır. Web Servis ile bağlantı kurulamaması ya da dış sistemden http-status-code !=200 alınması durumunda false değerini döner.
- bip_webservice_query_response : Dış sistemdeki web servisten dönen cevabın AIML içinde bir değişkene atanmasını sağlar.
- bip_webservice_query_response_size : Dış sistemdeki web servisten dönen composition yapısındaki cevabın içinde kaç adet content olduğu bilgisini verir. Composition list yapısına benzer ve içinde 1 veya daha fazla Content(TEXT-MEDIA-RICHMEDIA) barındırır.
- bip_composition : Dış sistemdeki web servisten dönen composition yapısı üzerinde işlem yapılmasını sağlar. komutu ile beraber kullanılır. komutu ile composition yapısı içindeki content ler üzerinden For döngüsünde olduğu gibi dolaşılmasına imkan sağlar. bip_content ile birlikte kullanılması gerekir.
- bip_content : Dış sistemdeki web servisten dönen composition yapısı içindeki her bir content e erişimi sağlar. Content datasının “type” ve “message” alanlarına ulaşılabilinir.
- bip_field: bip_content ile erişilen içeriğin detay bilgilerine erişmek amaçlı kullanılır. bip_content in “type” ve “message” alanları vardır. Şu an için karşı sistemden sadece TEXT yani type=0 tipinde mesaj gelişi desteklenmektedir. Text tipindeki dönüşlerde içeriğe erişmek için de “message” alanı kullanılır.
- “host” özelliği ile Dış Sistem WS Url i AIML içinden verilir. Dıs sistem ws ‘inin internete acık 80 ya da 443 portunda calısan bir sistem olması gerekir.
<aiml version='2.0'> <category> <pattern>*</pattern> <template> <bip_webservice_query host="EXTERNAL_WS_URL"> <bip_parameter name="action">askPaymentType</bip_parameter> <bip_webservice_query_result var="wscallsucceed" /> <bip_webservice_query_response var="syncresponselist" /> <bip_webservice_query_response_size var="syncresponselistsize" /> </bip_webservice_query> <condition var="wscallsucceed"> <li value="false"><srai>EXTWS_ERROR</srai></li> <li value="true"> <condition var="syncresponselistsize"> <li value="0"><srai>EXTWS_NORESPONSE</srai></li> <li> <bip_composition var="syncresponselist"> <bip_content var="syncresponse"> <think> <set var="type"> <bip_field var="syncresponse" field="type" /> </set> </think> <condition var="type"> <li value="0"> <think> <set var="text"><bip_field var="syncresponse" field="message" /></set> </think> <condition var="text"> <li value="POSTPAID"><srai>POSTPAID_MENU</srai></li> <li>Format doğru ancak beklenmedik bir içerik geldi. Gelen içerik:<get var="text" /></li> </condition> </li> <li><srai>EXTWS_RESPONSE_FORMAT_ERROR</srai></li> </condition> <loop /> </bip_content> </bip_composition> </li> </condition> </li> </condition> </template> </category> <category> <pattern>POSTPAID_MENU</pattern> <template> <bip_richmedia_poll id='12345'> <bip_image>https://timsac.turkcell.com.tr/scontent/p2p/14112016/11/P1e646f5c03a7b4b44f6da1329ac218e322da72356e79e5116dff86e3fc255a228.png</bip_image> <bip_description>Yapmak istediğiniz işlemi seçer misiniz?</bip_description> <bip_title>Çağrı Merkezi</bip_title> <bip_polltime>35</bip_polltime> <bip_option>Tarife ve Paket</bip_option> <bip_option>Fatura İşlemleri</bip_option> </bip_richmedia_poll> </template> </category> <category> <pattern>Tarife ve Paket</pattern> <that type='bip_richmedia_poll'>12345</that> <template>Tarife ve Paket menusu yapım aşamasında.</template> </category> <category> <pattern>Fatura İşlemleri</pattern> <that type='bip_richmedia_poll'>12345</that> <template>Fatura İşlemleri menusu yapım aşamasında.</template> </category> <category> <pattern>EXTWS_ERROR</pattern> <template>Dış sistem ile bağlantı kurulamadı ya da dış sistemden hata alindi. Kısacasi http-status-code !=200</template> </category> <category> <pattern>EXTWS_NORESPONSE</pattern> <template>Dış sistemden gelen cevap var ancak Null ya da içi boş.</template> </category> <category> <pattern>EXTWS_RESPONSE_FORMAT_ERROR</pattern> <template>Dış sistemden gelen cevap var ancak beklenen TEXT tipi dışında bir formatta cevap içeriyor.</template> </category> </aiml>
Kullanıcıdan servise gelen mesajın AIML içinde kullanılması;
<bip_incoming_message/> komutu ile servise kullanıcıdan gelen mesaja erişilir. Kullanıcının service gönderdiği içerik aşağıdaki AIML ile dış sistem ws ‘ine dinamik bir parametre olarak gönderilebilinir;<aiml version='1.0.1' encoding='UTF-8'> <category> <pattern type='MEDIA'>incoming</pattern> <template> <bip_webservice_call host='https://127.0.0.1:80/test/botapi/extws/8140'> <bip_parameter name='incomingMessage'> <bip_incoming_message/> </bip_parameter> <bip_webservice_call_result name='wscallresult'/> </bip_webservice_call> <condition name='wscallresult'> <li value='false'>WS call islemi basarısız.</li> </condition> </template> </category> </aiml>
{ "transferData":{ "incomingMessage":{ "type":2, "message":"https://testtims.turkcell.com.tr/scontent/p2p/20022017/08/P86e9df4f4e9148672681e0cfbd15a6bcb05c5b17f94ef6645829cc77d2b3be2f11.jpg" } }, "msgId":"0ea091ac-374e-437e-8966-d5d45b77d4e3_74 ", "serviceId":8140 }
BipUssu Paneli üzerinden yapılan toplu gönderimlere verilen cevapların AIML den karşılanması;
That komutunda type=’bipussu_bulk_transmission’ olarak verilmelidir. Belirli bir gönderim için özel olarak AIML içinde cevabın karşılanmak istenmesi durumunda That değeri de Unique Gönderim İsmini içerecek şekilde verilir;<aiml version='1.0.1' encoding='UTF-8'> <category> <pattern>*</pattern> <that type='bipussu_bulk_transmission'>UNIQUE-BULK-TRANSMISSION-NAME</that> <template> UNIQUE-BULK-TRANSMISSION-NAME isimli gönderime verilen cevap: <star/> </template> </category> </aiml>
<aiml version='1.0.1' encoding='UTF-8'> <category> <pattern>*</pattern> <that type='bipussu_bulk_transmission'>ALL</that> <template>Diğer kampanyalara e verilen cevap <star/> </template> </category> </aiml>