MASIGNASUKAv102
7345699749361123385

Cara Membuat SMS Gateway Dengan NEXMO Di Laravel

Cara Membuat SMS Gateway Dengan NEXMO Di Laravel
Add Comments
12 February 2020
SMS GATEWAY NEXMO - Pada artikel kali ini, saya akan menuliskan cara membuat sms gateway dengan nexmo di laravel yang baru saja saya pelajari. Di nexmo, kita bisa menggunakan versi gratis dengan limit credit 2 euro yang bisa kita gunakan testing atau belajar membuat sms gateway dengan nexmo. OK, langsung saja kita pada langkah pertama. 

1. Langkah pertama adalah dengan membuat account di nexmo.com

Setelah berhasil membuat account di nexmo, maka kita akan mendapatkan Key dan secret seperti gambar di bawah ini.

Key dan Secret ini akan kita gunakan pada langkah no. 7.

2. Langkah kedua adalah menginstall laravel dengan command

"composer create-project --prefer-dist laravel/laravel nexmo" 


pada terminal. Dengan command seperti di atas, saya akan menginstall laravel dengan versi terbaru (--prefer-dist) dan akan saya beri nama project ini "nexmo".

3. Buka project nexmo yang baru diinstall pada direktori installan (htdocs/nexmo). Pada percobaan ini, saya menggunakan Visual Studio Code sehingga step-stepnya masuk folder nexmo di dalam direktori htdocs/nexmo. Kemudian klik kanan, pilih "Open With Code".

4. Install nexmo dengan composer. Jalankan command seperti di bawah ini pada terminal

"composer require nexmo/laravel"


5. Kemudian jalankan command vendor:publish seperti di bawah ini.

php artisan vendor:publish


Kemudian pilih Provider: Nexmo\Laravel\NexmoServiceProvider atau ketikkan angka 8 pada terminal kemudian Enter.

6. Buka Config/app.php. Tambahkan script di bawah ini pada bagian Provider.

Nexmo\Laravel\NexmoServiceProvider::class,

   Dan script di bawah ini pada bagian Aliases.

'Nexmo' => \Nexmo\Laravel\Facade\Nexmo::class,

7. Kemudian buka file nexmo.php yang terletak di config/nexmo.php
Ubah script di bawah ini


 'api_key'    => function_exists('env'? env('NEXMO_KEY', '': '',

'api_secret' => function_exists('env'? env('NEXMO_SECRET', '': '',

Menjadi seperti ini

 'api_key'    => '7ba7f0e5',
 'api_secret' => 'Ki2GuZzKXoy4qriM',

api key dan api secret ini di dapat dari Website Resmi Nexmo (Langkah no. 1)

8. Langkah selanjutnya adalah membuat controller dengan artisan.
Di controller ini nanti akan digunakan untuk meload view form yang akan digunakan untuk menampilkan form-form tester.
OK, kita buat controllernya dahulu dengan command di bawah ini

php artisan make:controller NexmoController


dengan command artisan di atas, saya akan membuat controller baru dengan nama NexmoController.

Buka file NexmoController di folder app/Http/Controllers/NexmoController.php. Edit script di file tersebut menjadi seperti di bawah ini.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class NexmoController extends Controller
{
    public function index()
    {
        return view('nexmo');
    }

    public function store(Request $request)
    {
        $nexmo = app('Nexmo\Client');
        $nexmo->message()->send([
            'to' => $request->no_hp,
            'from' => 'Hilmi Purdimen',
            'text' => $request->pesan,
        ]);

        return back();
    }
}

di function index, kita akan menampilkan view pada file nexmo.blade.blade yang akan kita buat pada langkah selanjutnya.
Kemudian di function store, kita sisipkan script yang berfungsi untuk mengirim pesan dengan value yang akan kita inputkan pada form di vew nexmo.blade.php nanti.

9. Selanjutnya adalah membuat route di file web.php yang terdapat di folder route. Buka file web.php, dan tambahkan script di bawah ini.

Route::get('/nexmo','NexmoController@index');
Route::post('/nexmo','NexmoController@store')->name('nexmo.submit');

Maksud script di atas adalah, ketika kita mengakses url http://127.0.0.1:8000/nexmo maka akan memanggil function index di NexmoController. Jika kita lihat di NexmoController, function index akan menampilkan view nexmo (nexmo.blade.php)
Kemudian terdapat route dengan method post yang berfungsi untuk menangkap apa yang telah kita inputkan pada form nexmo.balde.php yang akan kita buat di langkah selanjutnya.

10. Di langkah no. 10, kita akan membuat view yang dapat kita gunakan untuk input no. handphone tujuan dan pesan yang dikirimkan. OK, buat file baru di view dengan nama nexmo.blade.php dan masukkan script di bawah ini.

<form action="{{route('nexmo.submit')}}" method="POST">
{{ csrf_field() }}
<label for="hp">Masukkan No. HP *</label>
<input type="number" name="no_hp" id="hp" placeholder="Masukkan No. HP" required>
<label for="pesan">Masukkan Pesan</label>
<input type="text" name="pesan" id="pesan" placeholder="Masukkan Pesan"  required>
<button name="submit" type="submit">Kirim Pesan</button>    
</form>

Maksud dari script di atas, kita akan membuat form dengan action atau ketika kita submit (kirim pesan), akan menjalankan route dengan name nexmo.submit yang artinya akan memanggil function store di NexmoController.

OK, kita sudah bisa test kirim pesan atau sms gateway dengan nexmo. Buka URL http://127.0.0.1:8000/nexmo , maka akan menampilkan seperti gambar di bawah ini


Untuk mengetesnya, masukkan nomor handphone atau ponsel aktifmu (contoh format: 6282143xxxxxx). Kemudian inputkan atau masukkan pesan dan klik button kirim pesan.

OK, kita sudah berhasil membuat sms gateway dengan nexmo di laravel.








Hilmi Hidayat

"If something's important enough, you should try. Even if you - the probable outcome is failure." - Elon Musk