Membuat Aplikasi SMS Gateway Whatsapp Menggunakan Android (Kotlin)

WhatsApp adalah layanan pengiriman pesan yang digunakan oleh orang-orang diseluruh dunia. Dengan API Obrolan anda dapat secara terprogram menerima dan mengirim pesan Whatsapp menggunakan permintaan HTTP sederhana. Integrasikan WhatsApp dengan platform pemasaran atau bisnis apa pun, misalnya Woocommerce, Shopify, Autoresponder, CRM, ERP, dll.

Diartikel sebelumnya sudah membahas tentang materi SMS Gateway menggunakan .whatsapp penerapan pada pemrograman PHP, hanya saja di artikel ini kita menerapkan di aplikasi android.

Hal pertama yang Anda harus lakukan membuat akun Anda di Chat-Api . Gratis! Setelah itu, Anda akan diarahkan ke panel admin, tempat instance pribadi Anda akan dibuat.

Daftar Whatsapp ke Penyedia

Buka akun pribadi Anda dan dapatkan kode QR di sana. Selanjutnya, buka WhatsApp di ponsel Anda, pergi ke Pengaturan -> WhatsApp Web -> Pindai kode QR.

Menentukan Base URL API

Menentukan API URL dan token, Anda dapat mengambil pada penyedia Chat API Whatsapp yang anda buat

Gambar diatas, Bagian Whatsapp ditandai dengan simbol pagar itu merupakan nama Intance, Anda juga bisa merubah langsung bagian kolom disediakan di samping. Bagian selajutnya ada API URL dan token digunakan untuk akses bagian sisi android, contoh methode GET salah satu yang kita gunakan untuk URL API lengkap yang kita gunakan pada android seperti berikut

https://eu60.chat-api.com/instance115263/sendMessage?token=jo85dccfnwq85fkl&phone=here_phone&body=here_message

Penerapan di Aplikasi Android

Anda membutuhkan tambahan gradle untuk menghubungkan ke sisi server menggunakan retrofit, yang harus anda tambahkan bagian dependencies.

implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.1'

Jika anda sudah menambahkan modul tersebut, anda tambahkan uses permission dibagian AndroidManifest

<uses-permission android:name="android.permission.INTERNET"/>

Setelah itu anda buat class dengan mengikuti request JSON dari penyedia API Whatsapp, berikut adalah request dari JSON untuk action GET

Jika mengacu pada request JSON diatas maka Anda harus buat model seperti berikut

class Whatsapp(val id: String, val isSent: Boolean, val message: String, val queueNumber: Int)

Selanjuatnya Anda buat class Data Provider dengan menggunakan modul yang anda tambahkan berupa modul retrofit, dibagian modul tersebut anda diharuskan memasukan BASE URL yang Anda dapat di penyedia SMS Gateway Whatsapp, anda bisa copy URL tersebut kemudian anda bisa masukan seperti kode berikut.

class DataProvider {

    private val nService: DataService

    init {
        val httpClient = OkHttpClient()
        val retrofit = Retrofit.Builder()
                .baseUrl("https://eu60.chat-api.com") //URL SMS GATEWAY WHATSAPP
                .client(httpClient)
                .addConverterFactory(GsonConverterFactory.create())
                .build()
        nService = retrofit.create(DataService::class.java)
    }

    fun getnService(): DataService {
        return nService
    }
}

Selanjutnya anda buat interface Data Service di bagian ini ada harus membuatkan tindakan sesuai dengan API yang akan digunakan, dibagian ini tindakan yang digunakan GET dengan request memanggil dari class model yakni class Whatsapp.

interface DataService {

    @GET("/instance115263/sendMessage")
    fun send_messages(
            @Query("token") token: String,
            @Query("phone") phone: String,
            @Query("body") body: String
    ): Call<Whatsapp>
}

Tahap yang terakhir membuat class activity utama dimana tempat memanggil class yang Anda buat sebelumnya, beserta di class ini sekaligus design dari activity.

class MainActivity : AppCompatActivity() {

    private val nService: DataService
    private var prgDialog: ProgressDialog? = null

    private var mBottomSheetBehavior: BottomSheetBehavior<*>? = null

    init {
        val provider = DataProvider()
        nService = provider.getnService()
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        init()
    }

    private fun init() {
        val bottomSheet = findViewById<View>(R.id.bottom_sheet)
        mBottomSheetBehavior = BottomSheetBehavior.from(bottomSheet)
        mBottomSheetBehavior!!.isHideable = true
        mBottomSheetBehavior!!.state = BottomSheetBehavior.STATE_HIDDEN

        findViewById<View>(R.id.fb_send_message).setOnClickListener { v -> mBottomSheetBehavior!!.setState(BottomSheetBehavior.STATE_EXPANDED) }

        findViewById<View>(R.id.btn_send_messages).setOnClickListener { v -> send_messages() }
    }

    private fun send_messages() {

        val etPhone = findViewById<EditText>(R.id.et_phone)
        val etMessages = findViewById<EditText>(R.id.et_messages)

        val phone = etPhone.text.toString()
        val message = etMessages.text.toString()

        if (!TextUtils.isEmpty(phone) || !TextUtils.isEmpty(message)) {

            prgDialog = ProgressDialog(this, R.style.MyAlertDialogStyle)
            prgDialog!!.setMessage("Tunggu sebentar...!!!")
            prgDialog!!.setCancelable(false)
            prgDialog!!.show()

            val call = nService.send_messages(
                    getString(R.string.token),
                    phone,
                    message)
            call.enqueue(object : Callback<Whatsapp> {
                override fun onResponse(call: Call<Whatsapp>, response: Response<Whatsapp>) {
                    if (response.isSuccessful) {
                        if (response.body()!!.isSent) {
                            prgDialog!!.dismiss()

                            mBottomSheetBehavior!!.state = BottomSheetBehavior.STATE_HIDDEN
                            etPhone.setText("")
                            etMessages.setText("")


                            Toast.makeText(this@MainActivity, getString(R.string.pesan_berhasil_terkirim), Toast.LENGTH_LONG).show()
                        } else {
                            prgDialog!!.dismiss()
                            Toast.makeText(this@MainActivity, getString(R.string.pesan_gagal_dikirim), Toast.LENGTH_LONG).show()
                        }
                    }
                }

                override fun onFailure(call: Call<Whatsapp>, t: Throwable) {
                    prgDialog!!.dismiss()
                }
            })
        } else {
            Toast.makeText(this, getString(R.string.inputan_belum_lengkap), Toast.LENGTH_SHORT).show()
        }
    }
}

Jika anda sudah mengikuti langkah-langkah sesuai artikel, berarti Anda sudah berhasil membuat aplikasi sms gateway whatsapp menggunakan android, demikian yang dapat saya sampaikan dari artikel ini semoga bermanfaat, untuk lebih lengkapnya anda bisa lihat langkah-langkah pembuatan di bagian video, jika ada yang ditanyakan silahkan di kolom komentar dibawah, selamat mencoba.

Share Comments
comments powered by Disqus