Discord Bot'a Veri Çekme

Karboran

Hectopat
Katılım
4 Şubat 2018
Mesajlar
3
Daha fazla  
Cinsiyet
Erkek
Arkadaşlar öncelikle herkese merhaba;

Öncelikle mükemmel bir amatör olduğumu belirtmek isterim. Ben yaklaşık 1 haftadır aşağıda soracağım soru üzerine internette bir şeyler bulmaya çalıştım lakin pek çoğundan kod derlerken hata aldım. Kendim eğitim videoları ile sıfırdan denediğimde istediğim şeyin bana göre biraz spesifik kaldığını öğrendiğimden bir çözüm bulamadım veya o çözüme ulaşamadım.

Şimdi sorumuza gelirsek. Sadece 6 arkadaş kullandığımız bir standart Discord sunucumuz var. Bu sunucuda ekonomi adında bir kanal açtım bu kanalda komut aldığında anlık dolar ve Euro fiyatlarını bana verebilecek bir bot kodlamak istiyorum. Bunun için anlık veri çekmem gerekiyor. Birkaç yerden API aldım lakin komutu sonuca bağlayamıyorum veya API'yi nasıl kullanacağımı bilmiyorum. Bunu bana anlatabilecek arkadaşlar yardımcı olursa sevinirim. Derleme aracı olarak Visual Studio veya atom kullanıyorum. Node.js yüklü. Bunun dışında yüklediğim bir şey yok.

Okuduğunuz ve yardımlarınız için şimdiden teşekkürler. Sağlıkla kalın.
 
API'lerden veri çekmek için, HTTP istekleri göndermelisin. Node.js için bu işi kolaylaştıran bir Npm kütüphanesi bulunuyor: request.

Projene dahil etmek için, Visual Studio'da projen içerisindeyken, bir terminal açıp npm i request yazman yeterli.

Kullanımı ise en basitinden şu şekilde (linkten JSON döndüğünü varsaydığımız bir senaryoda):
JavaScript:
request({
        url: 'https://url.com/url',
        method: 'GET',
    }, (error, response, body) => {
        if (!error) {
            bilgi = JSON.parse(response.body);
        } else {
            console.log(error);
        }
});

Veriyi çekeceğin yerde kullanıcı adı ve şifre/token bilgisi isteniyorsa, isteği şu şekilde göndermelisin:
JavaScript:
request({
        url: 'https://url.com/url',
        method: 'GET',
        auth: {
            user: 'username',
            pass: 'password'
        }
    }, (error, response, body) => {
        if (!error) {
            bilgi = JSON.parse(response.body);
        } else {
            console.log(error);
        }
});

"bilgi" değişkenine yazdırılacak veri şuna benzer bir yapıda olacaktır (linkten ne dönüyorsa, onlar yazdırılacaktır ve ayrıca yukarıda JSON'ı parse ettiğimiz için, yani JavaScript objesine dönüştürdüğümüz için, uygulamada çok kolay bir şekilde değerlere ulaşabiliyoruz. "bilgi.deneme_1" gibi.):
JavaScript:
bilgi = {
    deneme_1: "deneme",
    deneme_2: 123,
    deneme_3: true
}

Parse etmeden önce, linkten şu şekilde bir veri dönmüştü:
JSON:
{
    "deneme_1": "deneme",
    "deneme_2": 123,
    "deneme_3": true
}

Bunu Discord.js'le nasıl kullanacağın sana kalmış. Bence ayrı bir proje oluşturup, anlattığım şekilde veri çekmeye çalış, daha sonra bunu Discord.js'e dahil edersin.
 
Son düzenleme:
Python ile başlamanı önerirdim bot yazmaya. JS çok karışık gelecektir ve pes edersiniz. Discord.py kütüphanesini kullanabilirsiniz ayrıca kendilerinin 4000 kişilik devasa bir yardım sunucuları var.
 
mesela

Ben bir apiden örneğin kayıt numarasına bakacağım mesela ad soyad yazacağım ve api ona göre veri göndericek o çıkan veriyi kanala göndericek mesela ".kayıtlı Ahmet Kaya" Url şöyle olucak: "1.1.1.1.1/kayıtlıuyeler.php?ad=&soyad=" Yani ilk yazılan mesajı ad ikincisini soyad olarak kabul etmesini istiyorum api şöyle olucak "ad=ahmet&soyad=kaya" ve bu rolü sadece belirlediğim kişi kullanıcak
 

Yeni konular

Geri
Yukarı