Bu proje, kullanıcının konumuna göre en yakın eczaneleri bulan ve Telegram botu olarak hizmet veren bir uygulamadır. Nöbetçi eczaneleri sorgulamak için Collect API'sini ve çalışma saatlerinde yerel veritabanını kullanır.
./db/pharmacies.json içerisinde Türkiye'deki tüm eczanelerin listesini bulabilirsiniz. Bu veri setini ayrıca projelerinizde (kaynak göstermek şartıyla) kullanabilirsiniz.
Telegram hesabınız varsa kullanıcı arama kısmına En Yakın Eczaneyi Bul yazarak veya aşağıdaki linkten bota ulaşabilirsiniz:
https://t.me/EnYakinEczaneBot
Uygulamayı npm ile manuel olarak veya docker üzerinden pull edip run ederek çalıştırmanız mümkün.
- NPM (manuel kurulum için) veya Docker
- Telegram bot token bilgisi
- Collect API token bilgisi
-
Proje dizinine gidin ve bağımlılıkları yükleyin:
npm install
-
.env.exampledosyasını.envolarak yeniden adlandırın ve aşağıdaki bilgileri düzenleyin:TELEGRAM_BOT_TOKEN=<your_telegram_bot_token> USE_COLLECT_API=true COLLECT_API_TOKEN=<your_collect_apikey> ... MY_API_URI=<customapi_uri_youcanuse_collectapi_insteadofcustom> MY_API_KEY=<customapi_key_youcanuse_collectapi_insteadofcustom>
Buradaki
MY_API_URIbenim yazdığım başka bir servisin adresi. Bu servis, nöbetçi eczaneleri sunuyor. Henüz stabil olmadığından dolayı dış kullanıma açık değil, bu nedenle de burada bilgilerini paylaşamıyorum. Eğer kendi servisiniz varsa buraya onun adresini koyabilirsiniz. Tabii response için./api/my-api.jsdosyasını düzenlemeyi unutmayın.Alternatif olarak, Collect API kullanabilirsiniz. Bunun için de collectapi.com adresinde üye olup alacağınız token bilgisini COLLECT_API_TOKEN içerisine yapıştırın. Ardından buradaki adrese giderek "Ücretlendirme" sekmesinden istediğiniz bir pakete "Subscribe" yani abone olmanız gerekiyor. Bu işlemleri tamamladıktan sonra Collect API'daki nöbetçi eczane servisini kullanabilirsiniz. Bu zaten var olan bir servis, benim yaptığım bir şey değil.
Eğer collect api kullanacaksanız
USE_COLLECT_APIdeğerinitrueolarak bırakın. Kendi servisinizi kullanacaksanız, bu değerifalseolarak değiştirin. -
Proje dizinine gidin ve bağımlılıkları yükleyin:
npm run start
Repo'yu indirerek Dockerfile üzerinden yapmak için manuel kurulumdaki env adımını aynı şekilde uygulamalısınız.
-
Proje dizinine gidin ve Docker imajını oluşturun:
docker build -t en-yakin-eczane-telegram-botu . -
Docker imajını çalıştırın:
docker run -d --name eczane-botu en-yakin-eczane-telegram-botu
Repo'yu indirmeden Docker Hub üzerinden image'ı indirip çalıştırmak için:
docker run -d \
-e TELEGRAM_BOT_TOKEN="<token_degerini_buraya_girin>" \
-e COLLECT_API_TOKEN="<token_degerini_buraya_girin>" \
byengineer/en-yakin-eczane-telegram-botu:masterKendi botunuzu kullanmak için:
- Telegram'da oluşturduğunuz botunuzu bulun.
- Bota "/start" veya kendi ayarladığınız başlangıç komutunu gönderip çalıştığından emin olun.
- Başarılı şekilde cevap alabilirseniz şimdi de konum bilginizi göndererek eczaneleri bilgilerini almayı deneyebilirsiniz.
- Eğer mesai saatleri içerisinde iseniz, ilçenizdeki eczanelerin bir kısmını verip "Tümünü Göster" butonu getirecektir. Bu butona tıklayarak tüm eczane bilgilerini listeleyebilirsiniz.
Benim oluşturduğum botu deneyimlemek için https://t.me/EnYakinEczaneBot adresinden botu kullanabilirsiniz.
Kodu iyileştirmek, varsa bir hatayı gidermek veya yeni özellikler katmak isterseniz repo'yu clone'layın ve geliştirme sonrası bir Pull Request oluşturun. Desteğiniz için şimdiden teşekkür ederim.
