Cara menggunakan whatsapp api php github

Percakapan dengan keluarga dan teman tentang topik sensitif seringkali dapat menimbulkan pertengkaran. Ironisnya, banyak dari percakapan ini tidak lagi dilakukan secara langsung, tetapi terjadi secara real-time melalui aplikasi obrolan seperti WhatsApp

Ketika situasi canggung ini terjadi, Anda mungkin perlu memeriksa fakta pernyataan atau mencari beberapa informasi dengan cepat. Biasanya, ini mengharuskan Anda untuk menjalankan browser web Anda yang bisa sangat merepotkan ketika waktu sangat penting. Dalam kehidupan yang sempurna, akan lebih baik menggunakan chatbot untuk terhubung dengan mulus untuk mendapatkan informasi. Dengan layanan seperti Twilio WhatsApp API, Anda dapat membuat solusi khusus seperti ini untuk meningkatkan pengalaman mengobrol Anda

Dalam tutorial ini, kami akan membuat WhatsApp Chatbot sederhana yang memungkinkan Anda mendapatkan informasi tentang profil GitHub pengembang hanya dengan menggunakan nama pengguna mereka

Setelah berhasil mengikuti tutorial ini, Anda akan belajar cara menanggapi pesan WhatsApp yang dikirim ke nomor WhatsApp Twilio Anda dan juga cara mengirim pesan bentuk bebas menggunakan Twilio WhatsApp API

Prasyarat

Untuk menyelesaikan tutorial ini, Anda memerlukan yang berikut ini

  • Pengetahuan dasar tentang Laravel
  • Laravel Diinstal di mesin lokal Anda
  • Komposer diinstal secara global
  • Akun Twilio
  • WhatsApp Mengaktifkan Nomor Twilio

Mulai

Tutorial ini akan menggunakan Laravel. Mulailah dengan terlebih dahulu membuat proyek Laravel baru menggunakan. Buka terminal dan jalankan perintah berikut untuk menghasilkan aplikasi Laravel baru

$ laravel new whatsapp-chatbot && cd whatsapp-chatbot

Selanjutnya, Anda memerlukan Twilio SDK dan klien HTTP Guzzle untuk berinteraksi dengan Twilio WhatsApp API dan masing-masing membuat permintaan HTTP. Kedua paket dapat diinstal menggunakan Komposer. Buka terminal yang menunjuk ke direktori

$ composer require twilio/sdk
$ composer require guzzlehttp/guzzle
_1 dan jalankan perintah berikut untuk menginstalnya

$ composer require twilio/sdk
$ composer require guzzlehttp/guzzle
_

Selanjutnya, buka dasbor Twilio Anda dan salin SID AKUN dan TOKEN AUTH Anda yang akan digunakan untuk mengautentikasi permintaan Anda dengan Twilio SDK

Cara menggunakan whatsapp api php github

Lanjutkan untuk memperbarui variabel lingkungan Anda dengan kredensial ini. Buka file

$ composer require twilio/sdk
$ composer require guzzlehttp/guzzle
_2 Anda dan tambahkan variabel berikut

TWILIO_SID="ACCOUNT_SID"
TWILIO_AUTH_TOKEN="YOUR_AUTH_TOKEN"
_

Menyiapkan Kotak Pasir WhatsApp

Seperti yang mungkin sudah Anda duga, untuk memungkinkan chatbot Anda merespons pesan yang diterimanya, Anda harus memiliki cara mengirim pesan melalui WhatsApp. Untungnya, Twilio menyediakan API WhatsApp yang sangat tangguh yang memungkinkan Anda mengirim dan menerima pesan WhatsApp langsung dari aplikasi Anda

Sebelum Anda dapat mulai mengirim dan menerima pesan menggunakan Twilio WhatsApp API dalam produksi, Anda harus terlebih dahulu mendapatkan Nomor Twilio yang Disetujui WhatsApp yang akan bertindak sebagai nomor WhatsApp Anda untuk mengirim dan menerima pesan. Karena mendapatkan persetujuan nomor Twilio dapat memakan waktu berhari-hari, Twilio juga menyediakan kotak pasir yang aman yang dapat digunakan untuk tujuan pengembangan dan pengujian

Untuk mulai menggunakan Kotak Pasir WhatsApp Twilio, buka bagian WhatsApp di dasbor Twilio Anda dan kirim pesan ke nomor kotak pasir yang disediakan;

Cara menggunakan whatsapp api php github

Setelah berhasil mengirimkan kode Anda ke nomor kotak pasir, Anda akan menerima respons seperti ini

Cara menggunakan whatsapp api php github

Selanjutnya, perbarui file

$ composer require twilio/sdk
$ composer require guzzlehttp/guzzle
_2 Anda untuk memasukkan nomor WhatsApp Anda;

TWILIO_WHATSAPP_NUMBER="+14155238886"
_

Membangun Chatbot

Pada titik ini, Anda harus menyiapkan kotak pasir Twilio dan juga menginstal paket yang diperlukan untuk membangun chatbot. Sekarang buat Pengontrol yang akan menampung logika chatbot. Buka terminal di direktori proyek dan jalankan perintah berikut untuk menghasilkan kelas Controller baru

$ php artisan make:controller ChatBotController
_

Buka file

$ composer require twilio/sdk
$ composer require guzzlehttp/guzzle
_6 yang baru dibuat dan buat perubahan berikut

<?php

namespace App\Http\Controllers;

use GuzzleHttp\Exception\RequestException;
use Illuminate\Http\Request;
use Twilio\Rest\Client;

class ChatBotController extends Controller
{
    public function listenToReplies(Request $request)
    {
        $from = $request->input('From');
        $body = $request->input('Body');

        $client = new \GuzzleHttp\Client();
        try {
            $response = $client->request('GET', "https://api.github.com/users/$body");
            $githubResponse = json_decode($response->getBody());
            if ($response->getStatusCode() == 200) {
                $message = "*Name:* $githubResponse->name\n";
                $message .= "*Bio:* $githubResponse->bio\n";
                $message .= "*Lives in:* $githubResponse->location\n";
                $message .= "*Number of Repos:* $githubResponse->public_repos\n";
                $message .= "*Followers:* $githubResponse->followers devs\n";
                $message .= "*Following:* $githubResponse->following devs\n";
                $message .= "*URL:* $githubResponse->html_url\n";
                $this->sendWhatsAppMessage($message, $from);
            } else {
                $this->sendWhatsAppMessage($githubResponse->message, $from);
            }
        } catch (RequestException $th) {
            $response = json_decode($th->getResponse()->getBody());
            $this->sendWhatsAppMessage($response->message, $from);
        }
        return;
    }

    /**
     * Sends a WhatsApp message  to user using
     * @param string $message Body of sms
     * @param string $recipient Number of recipient
     */
    public function sendWhatsAppMessage(string $message, string $recipient)
    {
        $twilio_whatsapp_number = getenv('TWILIO_WHATSAPP_NUMBER');
        $account_sid = getenv("TWILIO_SID");
        $auth_token = getenv("TWILIO_AUTH_TOKEN");

        $client = new Client($account_sid, $auth_token);
        return $client->messages->create($recipient, array('from' => "whatsapp:$twilio_whatsapp_number", 'body' => $message));
    }
}

Dua metode baru telah ditambahkan ke kelas; . Mari kita uraikan setiap fungsi. Metode

$ composer require twilio/sdk
$ composer require guzzlehttp/guzzle
7 adalah dimana pesan yang dikirim ke nomor WhatsApp Anda akan diproses. Tanggapan yang dikirim akan bergantung pada
TWILIO_SID="ACCOUNT_SID"
TWILIO_AUTH_TOKEN="YOUR_AUTH_TOKEN"
_0 dari pesan yang diterima. Setiap kali pesan baru masuk, Twilio akan memanggil titik akhir yang ditautkan ke metode ini, sambil meneruskan informasi tentang pesan tersebut sebagai badan permintaan. Dari badan permintaan, Anda bisa mendapatkan detail tentang pesan yang dikirim pengguna ke nomor WhatsApp Anda, di antaranya adalah parameter
TWILIO_SID="ACCOUNT_SID"
TWILIO_AUTH_TOKEN="YOUR_AUTH_TOKEN"
1 dan
TWILIO_SID="ACCOUNT_SID"
TWILIO_AUTH_TOKEN="YOUR_AUTH_TOKEN"
2 yang menyimpan nomor telepon pengirim dan pesan masing-masing

$from = $request->input('From');
$body = $request->input('Body');

Selanjutnya, permintaan HTTP dibuat ke Github Developer API menggunakan pustaka HTTP Guzzle (dipasang di bagian awal tutorial ini) untuk mendapatkan detail pengguna menggunakan nama pengguna yang didapat dari badan pesan WhatsApp. Bergantung pada respons yang diambil dari permintaan HTTP, pesan WhatsApp akan dikirim kembali ke pengguna dengan ringkasan profil pengguna atau pesan kesalahan. Fungsi helper

$ composer require twilio/sdk
$ composer require guzzlehttp/guzzle
_8 adalah apa yang digunakan untuk mengirim pesan WhatsApp. Dibutuhkan dua argumen;

Metode

$ composer require twilio/sdk
$ composer require guzzlehttp/guzzle
8 memanfaatkan Twilio SDK untuk mengirim pesan WhatsApp

public function sendWhatsAppMessage(string $message, string $recipient)
    {
        $twilio_whatsapp_number = getenv('TWILIO_WHATSAPP_NUMBER');
        $account_sid = getenv("TWILIO_SID");
        $auth_token = getenv("TWILIO_AUTH_TOKEN");

        $client = new Client($account_sid, $auth_token);
        return $client->messages->create($recipient, array('from' => "whatsapp:$twilio_whatsapp_number", 'body' => $message));
    }

Pertama, kredensial Twilio Anda yang disimpan di file

$ composer require twilio/sdk
$ composer require guzzlehttp/guzzle
2 Anda diambil sebelum melanjutkan untuk membuat instance baru Klien Twilio menggunakan sid akun dan token autentikasi Anda. Selanjutnya, penerima dan serangkaian opsi diteruskan ke metode
TWILIO_SID="ACCOUNT_SID"
TWILIO_AUTH_TOKEN="YOUR_AUTH_TOKEN"
8 dari instance klien untuk benar-benar mengirimkan permintaan melalui Twilio API. Metode
TWILIO_SID="ACCOUNT_SID"
TWILIO_AUTH_TOKEN="YOUR_AUTH_TOKEN"
8 menggunakan dua argumen; .
TWILIO_WHATSAPP_NUMBER="+14155238886"
0 dan
TWILIO_SID="ACCOUNT_SID"
TWILIO_AUTH_TOKEN="YOUR_AUTH_TOKEN"
0. Properti
TWILIO_WHATSAPP_NUMBER="+14155238886"
0 harus berupa nomor telepon atau nomor kotak pasir Twilio WhatsApp Anda (hanya untuk pengujian) dengan teks
TWILIO_WHATSAPP_NUMBER="+14155238886"
3 yang diawali dengannya, sedangkan properti
TWILIO_SID="ACCOUNT_SID"
TWILIO_AUTH_TOKEN="YOUR_AUTH_TOKEN"
0 memegang
TWILIO_SID="ACCOUNT_SID"
TWILIO_AUTH_TOKEN="YOUR_AUTH_TOKEN"
4 untuk dikirim ke penerima

CATATAN. Nomor penerima juga harus diawali dengan awalan teks

TWILIO_WHATSAPP_NUMBER="+14155238886"
_3, tetapi dalam kasus ini nomor yang diambil dari badan permintaan sudah memilikinya sebagai bagian dari string yang dikembalikan untuk properti
TWILIO_SID="ACCOUNT_SID"
TWILIO_AUTH_TOKEN="YOUR_AUTH_TOKEN"
1, oleh karena itu mengapa kami tidak memasukkannya secara manual

Siapkan Webhook

Agar aplikasi Anda dapat menerima pesan yang dikirimkan ke nomor WhatsApp Anda, Anda harus terlebih dahulu menambahkan URL webhook ke dasbor Twilio Anda. Sebelum Anda dapat melakukan ini, Anda harus menyiapkan rute aplikasi Anda, yang akan berfungsi sebagai URL webhook Anda. Buka

TWILIO_WHATSAPP_NUMBER="+14155238886"
_8 dan buat perubahan berikut untuk menambahkan rute baru (
TWILIO_WHATSAPP_NUMBER="+14155238886"
9) ke aplikasi Anda

<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
 */

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

Route::post('/chat-bot', 'ChatBotController@listenToReplies');

CATATAN

  • Rute yang ditentukan dalam
    TWILIO_WHATSAPP_NUMBER="+14155238886"
    
    _8 menggunakan API
  • Rute yang ditentukan di
    TWILIO_WHATSAPP_NUMBER="+14155238886"
    
    _8 akan diawali dengan
    $ php artisan make:controller ChatBotController
    
    2

Mengekspos Aplikasi ke Internet

Untuk mengizinkan akses ke aplikasi Laravel Anda melalui webhook, aplikasi Anda harus dapat diakses melalui internet. Karena Anda masih membuat aplikasi, Anda dapat menggunakan ngrok untuk membuat aplikasi dapat diakses dari internet

Jika Anda belum menyiapkan ngrok di komputer, Anda dapat melihat caranya dengan mengikuti petunjuk di halaman unduhan resmi mereka. Selanjutnya, buka terminal Anda dan jalankan perintah berikut untuk memulai aplikasi Laravel Anda

$ php artisan serve

Ini akan memaparkan aplikasi Laravel yang berjalan di mesin lokal Anda pada port tertentu, yang akan dicetak ke terminal setelah berhasil menjalankan perintah. Catat port tersebut karena akan segera digunakan. Sekarang, saat masih menjalankan perintah

$ php artisan make:controller ChatBotController
_3, buka instance lain dari terminal Anda dan jalankan perintah ini untuk membuat aplikasi Anda dapat diakses publik

$ composer require twilio/sdk
$ composer require guzzlehttp/guzzle
_0

CATATAN. Ganti

$ php artisan make:controller ChatBotController
_4 dengan port tempat aplikasi Anda berjalan

Setelah berhasil menjalankan perintah di atas, Anda akan melihat layar seperti ini

Cara menggunakan whatsapp api php github

Catat URL Penerusan karena kami akan menggunakannya nanti

Memperbarui Webhook Sandbox

Setelah mengekspos aplikasi Anda ke internet, Anda sekarang dapat menggunakan rute aplikasi Anda sebagai URL webhook untuk kotak pasir WhatsApp Anda. Buka pengaturan kotak pasir WhatsApp di dasbor Twilio Anda dan perbarui kolom input berlabel "KETIKA PESAN DATANG" dengan URL lengkap ke jalur chatbot Anda

Cara menggunakan whatsapp api php github

CATATAN. URL webhook Anda harus dalam format

$ php artisan make:controller ChatBotController
5

Pengujian

Luar biasa. Anda telah berhasil membangun aplikasi chatbot Anda. Sekarang lanjutkan untuk mengujinya dengan mengirimkan pesan WhatsApp ke nomor kotak pasir Anda dengan nama pengguna Github. Jika semuanya berfungsi seperti yang diharapkan, Anda akan mendapatkan tanggapan dengan ringkasan profil orang tersebut dan tautan untuk melihat profilnya secara langsung

Cara menggunakan whatsapp api php github

Kesimpulan

Sekarang setelah Anda berhasil menyelesaikan tutorial ini, Anda harus memiliki chatbot WhatsApp sederhana untuk mencari profil pengguna di Github. Dengan ini, Anda juga belajar cara mengirim pesan bentuk bebas menggunakan Twilio WhatsApp API dan juga cara menanggapi pesan yang dikirim ke nomor WhatsApp Twilio Anda. Jika Anda ingin melihat kode sumber lengkap untuk tutorial ini, Anda dapat menemukannya di Github

Ini juga merupakan pengantar yang bagus untuk membangun chatbot yang Anda butuhkan untuk menenangkan diskusi keluarga yang paling menegangkan. Anda dapat memperpanjang chatbot ini untuk berkomunikasi dengan API favorit Anda sehingga Anda siap untuk argumen berikutnya

Saya ingin menjawab pertanyaan apa pun yang mungkin Anda miliki tentang tutorial ini. Anda dapat menghubungi saya melalui

  • Surel. Brian. iyoha@gmail. com
  • Twitter. com.thecodearcher
  • GitHub. com.thecodearcher

Twilio. org membantu organisasi berdampak sosial memperluas jangkauan dan skala misi mereka. Buat aplikasi pertama Anda dengan Twilio dan mulai libatkan audiens Anda tanpa biaya dengan kredit produk dari Program Akses Dampak. Pelajari lebih lanjut tentang kelayakan dan cara memulai manfaat Anda hari ini