• 09-11-2023, 17:43:20
    #1
    Merhabalar,

    Bu makalede, kendi geliştirdiğim whatsapp.ts kütüphanesini kullanarak WhatsApp Web‘e kolayca nasıl bağlanabileceğinizi, Node.js üzerinden mesajları nasıl dinleyip yanıtlayabileceğinizi anlatacağım. Bu kütüphane sayesinde Node.js ile kendi WhatsApp botunuzu kolayca kodlayabilirsiniz.

    Bu kütüphane WhatsApp bağlantısını direkt socket üzerinden yapmaktadır arkada browser çalıştırmıyor bu sayede kaynak tüketimi çok düşük oluyor. Projeyi desteklemek için GitHub sayfasından star atabilirsiniz.

    Kurulum ve Başlangıç

    İlk adım olarak, npm komutunu kullanarak whatsapp.ts kütüphanesini kurmalıyız:

     npm install whatsapp.ts
    Kütüphaneyi projemize dahil ettikten sonra WhatsAppAPI sınıfını kullanarak yeni bir örnek oluşturuyoruz:

    const { WhatsAppAPI } = require('whatsapp.ts');
    const wp = new WhatsAppAPI({
      deviceName: 'WhatsApp.ts',
      sessionPath: './wp-session',
    });
    deviceName parametresi, WhatsApp uygulamasında görünecek cihaz isminizi belirtir.
    sessionPath parametresi ise oturum bilgilerinin saklanacağı dosya yolunu tanımlamanıza olanak tanır.

    QR Kod İle Oturum Açma

    wp.on(‘qr’, callback) eventini kullanarak, oturum açmak için gerekli QR kodunu elde edebilirsiniz. qrcode-terminal kütüphanesini kullanarak bu QR kodunu terminal üzerinde gösterip, telefonunuzdan tarama işlemini gerçekleştirebilirsiniz:

    const qrcode = require('qrcode-terminal');
    wp.on('qr', (qr) => {
      qrcode.generate(qr, { small: true });
    });
    Mesaj Olayları ve Yanıtlama

    Gelen mesajları message eventi ile dinleyebilir ve message.reply fonksiyonu ile hızlıca yanıtlayabilirsiniz:

    wp.on('message', (message) => {
      if (message.body.toLowerCase().includes('merhaba')) {
        message.reply('Merhaba! Size nasıl yardımcı olabilirim?');
      }
    });
    Komut Dinleme ve İşleme

    whatsapp.ts kütüphanesi, komutları /komut eventiyle dinlemenize imkan tanır. Örneğin, /start komutunu aşağıdaki gibi dinleyebilir ve yanıt verebilirsiniz:

    wp.on('/start', (message) => {
      message.reply('Botumuzu başlattınız, hoş geldiniz!');
    });
    Bu kod parçası sayesinde, kullanıcı /start yazdığında otomatik olarak belirlediğiniz yanıtı alacaktır.

    Direkt Numaraya Mesaj Gönderme

    Botumuzun belirli bir numaraya doğrudan mesaj göndermesini sağlamak için wp.sendText(to, message) fonksiyonunu kullanabiliriz. Bu fonksiyon, belirli bir telefon numarasına anında mesaj yollamanıza olanak tanır. Kullanımı şöyledir:

    wp.sendText('905301112233@c.us', 'Merhaba!');
    Burada dikkat etmeniz gereken, mesaj gönderilecek telefon numarasını uluslararası formatta, ülke koduyla birlikte girmeniz ve sonuna @c.us eklemenizdir. Bu, WhatsApp‘ın numarayı tanıması için gereklidir.

    Bu özellik sayesinde, kullanıcıların önceden tanımlı bir liste üzerinden değil, doğrudan belirli bir numaraya mesaj atmasını sağlayarak botunuzun kullanım alanlarını genişletebilirsiniz.

    Bağlantı Kesilme ve Yeniden Başlatma

    disconnect eventi ile WhatsApp’tan bağlantının kesilmesi durumunda uygulamayı sonlandırabilir veya otomatik olarak yeniden bağlanmayı deneyebilirsiniz:

    wp.on('disconnect', (reason) => {
      console.log('Bağlantı kesildi, yeniden bağlanılıyor:', reason);
      wp.initialize();
    });
    whatsapp.ts kütüphanesinin gelişimine katkıda bulunmak isterseniz veya en güncel bilgilere ulaşmak istiyorsanız, projenin GitHub sayfasını ziyaret edebilirsiniz.
    https://github.com/umitbilgin/whatsapp.ts

    Detaylı bilgi: https://umitbilgin.com/nodejs-ile-wh...tu-gelistirme/

    Aklınıza takılan herhangi bir şeyi sorabilirsiniz konu altında cevaplamaya çalışacağım.
  • 09-11-2023, 17:46:47
    #2
    Gayet kullanışlı bir wrapper olmuş. Kütüphaneyi birkaç projeme hemen dahil ettim ellerine sağlık.
  • 09-11-2023, 17:47:52
    #3
    orcunxrd adlı üyeden alıntı: mesajı görüntüle
    Gayet kullanışlı bir wrapper olmuş. Kütüphaneyi birkaç projeme hemen dahil ettim ellerine sağlık.
    Teşekkürler
  • 09-11-2023, 17:48:04
    #4
    Elinize sağlık, en kısa sürede deneyeceğim
  • 09-11-2023, 17:48:49
    #5
    mertfarukgul adlı üyeden alıntı: mesajı görüntüle
    Elinize sağlık, en kısa sürede deneyeceğim
    Teşekkürler
  • 09-11-2023, 18:02:44
    #6
    faydalı olmuş teşekkürler
  • 09-11-2023, 18:04:50
    #7
    efekanrasit adlı üyeden alıntı: mesajı görüntüle
    faydalı olmuş teşekkürler
    Teşekkürler
  • 13-11-2023, 14:38:28
    #8
    Teşekkürler güzel bir kaynak olmuş . Emeğine sağlık
  • 13-11-2023, 16:46:49
    #9
    KEMO adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler güzel bir kaynak olmuş . Emeğine sağlık
    Teşekkürler